我尝试将我的博客(Octopress)推送到github,但得到以下错误:
MacBook-Air:octopress bdeely$ git push origin source
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.我生成了一个SSH密钥,保存了它,甚至在SSH密钥设置中将它与我的GitHub帐户链接起来,但我继续检查状态,得到了相同的错误:
MacBook-Air:.ssh bdeely$ ssh -T git@github.com
Permission denied (publickey).除此之外,我检查了github's help page,执行了以下操作,得到了以下错误消息:
MacBook-Air:~ bdeely$ ssh-add -l
The agent has no identities.有没有人知道哪里出了问题,我该怎么解决这个问题?
发布于 2015-03-13 05:55:14
在OSX上,如果您键入
ssh-add -l返回"no identities",这意味着您的ssh代理没有加载任何标识。通常,当mac重启时,你没有身份。
我在重新引导后通过显式地运行以下命令来添加我的
ssh-add这将从~/..ssh/id_rsa加载默认标识
您还可以将ssh-add命令与特定标识一起使用
ssh-add ~/foo/bar/is_rsa添加身份后,您可以通过键入以下命令来查看所有列出的身份
ssh-add -l确保您至少列出了一个。
发布于 2013-12-03 17:15:10
在您的终端中尝试以下内容:
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa输入您的密码短语(如果有),它应该可以工作。希望这能有所帮助:-)
发布于 2013-11-26 14:43:02
我希望这对你有帮助:
我也遇到了同样的问题,沮丧得要把自己的眼睛挖出来;网络上没有任何东西能让我找到答案,我试图在没有确切指定网址的情况下使用git push命令(这也可以解决我相信的问题),所以我看不出连接是怎么失败的。
我已经为具有两个不同密钥的两个用户正确地设置了我的.ssh/config,甚至使用了IdentitiesOnly yes,它应该覆盖自动提供错误的 ssh标识的ssh-agent。
当我检查本地存储库配置时,我终于意识到了问题所在
[remote "origin"]
url = git@github.com:{my-username}/{my-repo-name}.git我在.ssh/config文件中的配置是为两个用户使用相同的HostName github.com条目,我对所有这些都是完全陌生的,所以我没有意识到要正确覆盖ssh-agent,我必须指定确切的URL,否则我的.ssh/config文件中的特定标识将被忽略,并且默认情况下将使用ssy-agent列出的第一个键(与我的情况不同)。
我通过将本地repo URL更改为url = git@github-personal:{my-username}/{my-repo-name}.git修复了此问题,其中我在.ssh/config中将Host github-personal设置为标识。
解决这个问题的另一种方法是在git push命令本身中指定URL中的用户,或者更好的是,在我用自己糟糕的方式解决这个问题后,在帖子中描述的解决方案:
https://superuser.com/questions/272465/using-multiple-ssh-public-keys
我不敢相信没有官方来源可以为这种看起来很常见的边缘情况提供解决方案,甚至可以很好地解释这种情况(通过SSL从一台机器访问两个不同的github帐户)。
https://stackoverflow.com/questions/18293405
复制相似问题