推送私有Git仓库遇kex_exchange_identification错误求解决方案
可行解决方案
验证SSH密钥有效性
- 检查本地SSH密钥是否存在:
确认是否有ls -la ~/.sshid_rsa/id_ecdsa/id_ed25519这类私钥文件,以及对应的.pub公钥文件。 - 重新生成SSH密钥(若旧密钥可能失效):
全程按回车默认设置即可,按需选择是否设置密码。ssh-keygen -t ed25519 -C "your_email@example.com" - 将新公钥添加到GitHub账户:
复制公钥内容:
登录GitHub账户后,进入Settings -> SSH and GPG keys页面,粘贴添加新的SSH key。cat ~/.ssh/id_ed25519.pub
- 检查本地SSH密钥是否存在:
测试SSH连接状态
执行命令测试与GitHub的SSH连接:ssh -T git@github.com -p 443若返回
Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.则连接正常,否则根据报错信息定位问题。临时切换为HTTPS协议推送
若SSH问题无法快速解决,可暂时更换仓库远程地址为HTTPS:git remote set-url origin https://github.com/[用户名]/[仓库名].git推送时输入GitHub用户名和个人访问令牌(PAT)作为密码,PAT需在GitHub的Settings -> Developer settings -> Personal access tokens页面生成,勾选
repo权限。清理本地SSH配置冲突
- 检查
.ssh/config是否存在冲突配置:
保留仅针对github.com的配置,删除多余的Host条目。cat ~/.ssh/config - 清除旧的GitHub主机信任记录:
重新连接时系统会自动重新验证并信任主机密钥。ssh-keygen -R github.com ssh-keygen -R ssh.github.com ssh-keygen -R 140.82.121.36
- 检查
排查本地拦截工具
关闭本地防火墙、杀毒软件、VPN等可能拦截SSH连接的工具,之后再尝试推送操作,确认是否恢复正常。确认仓库地址与权限
检查本地仓库的远程地址是否正确:git remote -v确保地址与GitHub上的仓库SSH/HTTPS地址完全一致,同时确认你的GitHub账户拥有该私有仓库的推送权限(可在仓库Settings -> Collaborators and teams页面查看)。
内容的提问来源于stack exchange,提问作者se7en
相关产品推荐
相关产品推荐

