GitHub中SSH Key未被使用,执行git push需反复输入账号密码求助
解决GitHub SSH Key已添加但Git Push仍需输入账号密码的问题
我之前也碰到过一模一样的问题,折腾了好一会儿才搞定,给你整理几个最可能的原因和对应的解决步骤:
检查远程仓库地址是否为SSH协议
这是最常见的原因!如果你的本地仓库绑定的远程地址是HTTPS格式,哪怕SSH Key配置正确,Git依然会走账号密码验证。- 先查看当前远程地址:
如果输出是类似git remote -vhttps://github.com/你的用户名/仓库名.git的格式,说明用的是HTTPS协议。 - 修改为SSH协议地址:
替换命令里的用户名和仓库名即可。git remote set-url origin git@github.com:你的用户名/仓库名.git
- 先查看当前远程地址:
确认SSH Key已被ssh-agent加载
如果你的SSH Key不是默认的id_rsa(比如自定义了文件名),需要手动把它添加到ssh-agent中,否则Git可能找不到它:- 先启动ssh-agent:
eval "$(ssh-agent -s)" - 添加你的SSH Key:
比如你自定义的密钥叫ssh-add ~/.ssh/你的密钥文件名github_key,就执行ssh-add ~/.ssh/github_key。
- 先启动ssh-agent:
验证本地公钥与GitHub上的是否完全一致
有时候复制公钥时不小心多了空格或者换行,会导致验证失败:- 查看本地公钥内容:
(如果是自定义密钥,替换成对应的cat ~/.ssh/id_rsa.pub.pub文件名) - 打开GitHub的「Settings」→「SSH and GPG keys」,找到你添加的公钥,对比内容是否完全一致,包括开头的
ssh-rsa和结尾的邮箱/备注。
- 查看本地公钥内容:
测试SSH连接是否成功
做完上面的步骤后,测试一下和GitHub的SSH连接:ssh -T git@github.com如果看到类似
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明SSH连接已经正常工作,之后再执行git push就不需要输入账号密码了。
内容的提问来源于stack exchange,提问作者nail fei
相关产品推荐
相关产品推荐

