SSH 连接报错
Git 通过 SSH 连接 GitHub 时,先测试:
ssh -T git@github.com
如果出现:
ssh: connect to host github.com port 22: Connection timed out
这说明连接没有及时建立,先检查网络、代理及端口限制。若网络允许 GitHub 的 SSH 443 端口,可以测试:
ssh -T -p 443 git@ssh.github.com
注意主机是 ssh.github.com,不是直接把 github.com 改成 443。首次连接或出现主机密钥变化时,先通过 GitHub 官方公布的指纹核对身份,再接受密钥。
测试成功后保存配置
编辑 ~/.ssh/config,在适当位置添加或合并下面的配置;若已有同名 Host,先检查其设置,不重复堆叠:
Host github.com
HostName ssh.github.com
User git
Port 443
再检查实际生效值并连接:
ssh -G github.com
ssh -T git@github.com
GitHub 提示认证成功但不提供 shell,即表示认证通过;这个测试可能仍返回退出码 1,不应只凭退出码判断失败。
该设置只影响匹配此 Host 的 SSH 连接,不会替代 https://github.com/... 仓库地址的 HTTP 代理设置,也不保证解决密钥或账号权限问题。需要恢复时,只撤回本次增加的条目,保留其他 SSH 配置。
评论将在接近此处时加载,也可点击立即加载。