新增GitHub账号配置SSH密钥及config文件后无法推送代码,SSH测试失败求助
我来帮你排查这个SSH连接问题——核心问题其实出在你的SSH config文件里的User配置上!
问题根源
GitHub的SSH身份验证只接受git作为连接用户名,不管你实际使用的是哪个GitHub账号。你在config里把User设成了eric和nuist(你的账号昵称),这就导致GitHub无法正确识别你的身份,直接返回了权限拒绝。
修复步骤
- 修正SSH Config文件
把你的~/.ssh/config里的User字段全部改成git,修正后的内容如下:
# one(one@gmail.com) Host eric HostName github.com IdentityFile ~/.ssh/id_rsa User git # two(two@gmail.com) Host nuist HostName github.com IdentityFile ~/.ssh/github_id User git
- 重新验证连接
执行命令ssh -T nuist,如果配置正确,你会看到类似这样的成功提示:
Hi nuist! You've successfully authenticated, but GitHub does not provide shell access.
- 额外检查(如果还是失败的话)
- 确认你已经把
github_id.pub(公钥文件)正确添加到新GitHub账号的SSH密钥列表中(千万别加私钥!) - 检查私钥文件的权限:Windows上右键文件→属性→安全,确保只有当前用户有读取权限;Linux/macOS下执行
chmod 600 ~/.ssh/github_id,避免权限过宽导致SSH拒绝使用 - 清空可能干扰的SSH代理密钥:执行
ssh-add -D,然后重新测试连接
内容的提问来源于stack exchange,提问作者王子健




