集群更换后无法推送代码至GitHub:SSH连接及密钥异常求助
GitHub推送超时与SSH密钥异常排查方案
问题现象
- 原集群Mordor通过VPN连接加拿大远程系统,Git推送GitHub正常;切换至新集群Valinor后,推送持续报错:
Failed connect to github.com:443; Connection timed out - 执行
ssh -vT git@github.com测试时出现两个异常:- 系统自动执行代理命令
exec /usr/bin/sss_ssh_knownhostsproxy -p 22 github.com,最终连接被远程关闭 - 本地明确存在
/mnt/work1/users/home2/t114244uhn/.ssh/id_rsa私钥,却输出key_load_public: No such file or directory
- 系统自动执行代理命令
排查与解决步骤
1. 临时绕过SSS代理测试核心连接
先排除代理干扰,直接测试SSH连接GitHub:
ssh -o ProxyCommand=none -vT git@github.com
如果此命令能成功返回认证信息,说明问题根源在新集群默认启用的SSS代理上。
2. 配置SSH规则,针对GitHub禁用代理
创建或编辑用户本地SSH配置文件~/.ssh/config,添加以下规则(覆盖系统默认代理配置):
Host github.com ProxyCommand none User git IdentityFile /mnt/work1/users/home2/t114244uhn/.ssh/id_rsa
3. 修复密钥文件的权限与公钥缺失问题
SSH对.ssh目录及密钥文件权限要求严格,同时私钥对应的公钥文件可能缺失:
- 检查公钥是否存在:
ls -l /mnt/work1/users/home2/t114244uhn/.ssh/id_rsa.pub - 若公钥不存在,从私钥生成:
ssh-keygen -y -f /mnt/work1/users/home2/t114244uhn/.ssh/id_rsa > /mnt/work1/users/home2/t114244uhn/.ssh/id_rsa.pub - 修正目录与文件权限:
chmod 700 /mnt/work1/users/home2/t114244uhn/.ssh chmod 600 /mnt/work1/users/home2/t114244uhn/.ssh/id_rsa chmod 644 /mnt/work1/users/home2/t114244uhn/.ssh/id_rsa.pub
4. 确认Git仓库远程协议
确保仓库使用SSH协议而非HTTPS(HTTPS超时也可能受代理影响):
git remote -v
若显示HTTPS地址,切换为SSH地址:
git remote set-url origin git@github.com:<你的用户名>/<你的仓库名>.git
5. 验证连接与推送
执行以下命令确认SSH认证成功:
ssh -T git@github.com
若输出Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.,则连接正常,此时再尝试推送代码即可。
内容的提问来源于stack exchange,提问作者Riddhi Sera
相关产品推荐
相关产品推荐

