OpenSSH: git@github.com permission denied
OpenSSH: git@github.com permission denied
我需要在我的一个项目中使用PowerShell而不是WSL。我想设置我的终端使用ssh而不是每次都输入我的凭据。
我在过去成功地在WSL上做过这个,但是在PowerShell上似乎OpenSSH给我带来了麻烦。当我尝试执行一个简单的推送命令到一个全新的仓库时,我收到以下错误:
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
事情开始变得奇怪...我按照 GitHub 的关于这个问题的文章中概述的所有步骤进行了操作,一切都表明我可以继续了。
我做了以下几点:
- 检查确保
ssh-agent
正在运行。是的。 - 运行
ssh -vT git@github.com
。它正在使用端口 22,并且我在最后得到Hi [我的用户名]!您已成功验证,但 GitHub 不提供 shell 访问权限。
。 - 验证
ssh-add -l -E md5
是否有正确的公钥。 - 验证由上述
ssh-add
输出的公钥是否与我添加到 GitHub 账户的公钥完全相同。 - 尽管进行了第 1 步,但仍然检查确保我的密钥实际上被找到。确实如此(第二行):
...
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in C:\\Users\\aleks/.ssh/known_hosts:1
...
我真的很困惑,没有任何主意。发生了什么事?
问题原因:在第一次尝试时,Git没有使用正确的身份验证方式,可能是因为文件名不是"id_rsa"和"id_rsa.pub"。将文件重命名后,问题解决。
解决方法1:尝试设置环境变量"GIT_SSH_COMMAND"为"ssh -v",然后重新执行"git push"命令。
解决方法2:通过配置文件设置Git的核心SSH命令为"ssh -v",然后执行"git push"命令。
确保在Powershell会话中启动SSH代理。
根据OP AlexH的评论,问题已经解决。他指出第一次尝试时没有使用正确的身份验证方式,可能是因为文件名不是"id_rsa"和"id_rsa.pub"。将文件重命名后,问题得到解决。
以上方法均可解决该问题。