diff --git a/.ssh/config b/.ssh/config index 51d1059..ed1c6f8 100644 --- a/.ssh/config +++ b/.ssh/config @@ -4,3 +4,13 @@ Host github.com User git IdentityFile ~/.ssh/github_ed25519 IdentitiesOnly yes + # git push opens this connection BEFORE running the pre-push hook, then + # leaves it fully idle for the hook's entire duration. Found 2026-08-29: + # under heavy concurrent machine load (~80 sessions), hooks routinely ran + # long enough that GitHub's idle-connection timeout killed the SSH session + # while the hook was still running — the push then silently failed to + # transfer after printing "Safe to push," with only a stray "Connection to + # github.com closed by remote host." in the log to explain it. Active + # keepalives during that idle window prevent the drop. + ServerAliveInterval 30 + ServerAliveCountMax 10