Linux环境下推送代码至GitHub时SSH认证失败求助
问题排查与解决步骤
1. 确认远程仓库地址类型
先执行命令查看当前仓库的远程地址:
git remote -v
如果输出显示的是https://github.com/Brianarguello/pysave.git这类HTTPS格式地址,那问题根源就在这——你虽然配置了SSH密钥,但当前仓库用的是HTTPS远程,Git会走HTTPS认证流程,而GitHub早已取消密码认证方式。
2. 切换远程地址为SSH格式
GitHub的SSH远程地址格式为git@github.com:用户名/仓库名.git,执行以下命令修改:
git remote set-url origin git@github.com:Brianarguello/pysave.git
修改完成后,再次用git remote -v确认地址已切换为SSH格式。
3. 验证SSH连接有效性
执行测试命令,确认SSH密钥能正常和GitHub认证:
ssh -T git@github.com
如果认证成功,会收到类似Hi Brianarguello! You've successfully authenticated, but GitHub does not provide shell access.的反馈。
4. 额外排查项(若上述步骤后仍有问题)
- 启动并配置SSH代理:执行以下命令启动代理并添加密钥:
(如果你的密钥文件名不是eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsaid_rsa,替换成实际文件名) - 修正密钥文件权限:确保
.ssh目录和密钥文件权限符合要求:chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa - 检查SSH配置文件:若你自定义过
~/.ssh/config,确认GitHub相关配置正确,示例配置如下:Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa
内容的提问来源于stack exchange,提问作者Brian Arguello
相关产品推荐
相关产品推荐

