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

mc.*_*cki 48 git ssh github ssh-keys ssh-agent

我有以下问题:

$ 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.
Run Code Online (Sandbox Code Playgroud)

我已经检查了这样做的连接:

$ ssh -vT git@github.com
Run Code Online (Sandbox Code Playgroud)

和输出看起来不错,我被正确认证.

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

$ ssh-add -l
The agent has no identities.
Run Code Online (Sandbox Code Playgroud)

我试过运行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.
Run Code Online (Sandbox Code Playgroud)

我正在使用Arch Linux.任何帮助将非常感谢!提前致谢!

Github诊断帮助在这里.

NEO*_*NEO 119

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

ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

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

  • 这对我帮助了很多次.有没有办法永久添加这个,所以我不必总是通过动议. (2认同)

Dao*_*Wen 6

如果您尚未阅读它,则应查看GitHub帮助页面以查找此错误:

错误:权限被拒绝(publickey)

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


TL;博士

确保您当前的公钥已附加到您的GitHub帐户.


Ser*_*kij 6

您需要在控制台中执行(如果您使用putty ssh客户端):

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

    cd ~/.ssh && ssh-keygen -lf ~/.ssh/id_rsa.pub
    
    Run Code Online (Sandbox Code Playgroud)

不要忘记密码,在此步骤输入!

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

    cd ~/.ssh && cat id_rsa.pub
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过单击复制此字符串并将鼠标指针从开始输出移动到结束.无需按Ctrl+ V或更多键.

  3. 在GitHub上登录您的帐户并将此公钥添加到https://github.com/settings/ssh

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