无法推送到git存储库 – 权限被拒绝

我有一个下面的问题:

$ git push -u origin master Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

我已经检查了这个连接:

 $ ssh -vT git@github.com 

和输出看起来不错,我是正确的authentication。

在进一步检查时,我注意到:

 $ ssh-add -l The agent has no identities. 

我试图运行ssh-agent,但没有改变:

 $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-A1mhFqvqncuO/agent.766; export SSH_AUTH_SOCK; SSH_AGENT_PID=767; export SSH_AGENT_PID; echo Agent pid 767; $ ssh-add -l Could not open a connection to your authentication agent. 

我正在使用Arch Linux。 任何帮助将被强烈感谢! 提前致谢!

Github诊断帮助这里。

我有类似的问题,我的问题是通过运行以下命令将我的密钥添加到已知密钥列表解决:

 ssh-add ~/.ssh/id_rsa 

希望它也能解决你的问题。 ;)

你需要在你的控制台( 如果你使用一个腻子SSH客户端 ):

  1. 生成密钥,如果密钥不存在:

     cd ~/.ssh && ssh-keygen -lf ~/.ssh/id_rsa.pub 

不要忘记密码,在这一步input!

  1. 输出您的公共密钥到屏幕:

     cd ~/.ssh && cat id_rsa.pub 
  2. 通过单击复制此string并将鼠标指针从开始输出移动到结束。 不需要按Ctrl + V或任何其他键。

  3. 在GitHub上login你的账户,并把这个公钥加到https://github.com/settings/ssh

  4. 现在你可以在本地使用你的git。

如果你还没有阅读,你应该看看GitHub的帮助页面中的错误:

错误:权限被拒绝(公钥)

每次我遇到这个问题,都是由于该页面上列出的最后一个问题引起的:我没有从当前工作站连接到我的GitHub帐户的公钥。 当然,GitHub也提供了如何将您的公钥添加到您的帐户的说明 。


TL;博士

确保您的当前公钥已经连接到您的GitHub帐户。

我不认为这会解决你的问题,因为你直接testing了ssh -vT git@github.com ,它工作正常,但是你正在使用ssh-agent 。 你需要运行

 $ eval `ssh-agent -s` Agent pid 767 $ ssh-add -l The agent has no identities. 

这将评估环境导出命令,并允许您的ssh-addssh命令与代理进行通信。 或者,您可以要求代理启动一个shell,terminal等,它将设置适当的环境:

 $ ssh-agent bash $ ssh-add -l The agent has no identities. 

在这种情况下,shell作为ssh-agent一个子ssh-agent运行,当shell退出时代理将closures。

我在Ubuntu上面对同样的问题,然后我意识到,我是在sudo模式,一旦我只是访问remote没有sudo它进展顺利。

这就是我如何摆脱问题,希望可以帮助。

权限被拒绝(公钥)。 我今天遇到这个问题,但最后我find了一个解决scheme,并成功解决了我的问题。

也许你应该validation以下问题:

  1. 你有一个github帐户
  2. gitconfiguration你的用户名和邮件
  3. 生成一个ssh密钥pri / pub对,并将公钥添加到你的git帐户,请检查这可能会给你的帮助: 生成新的ssh密钥 , 不能推git存储库'权限被拒绝'
  4. 检查ssh-key是否成功添加: ssh -V username@github.com
  5. 祝你好运!