GitHub: Permission denied (publickey)

错误

在使用git命令 git push -u origin master , 出现如下报错:

1
2
3
4
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.

解决步骤

Permission denied (publickey) 没有权限的publickey, 出现错误原因有以下两种:

  • 客户端与服务器未生成SSH KEY
  • 客户端与服务器的SSH KEY 不匹配

1. 客户端生成SSH KEY

1
ssh-keygen -t rsa -C "youremail@example.com"

youremail@example.com改为自己的邮箱,途中会让输入密码,一路回车即可。(如果重新生成的话会覆盖之前的SSH KEY。)

2.执行如下命令

1
ssh -v git@github.com

执行后输出信息最后两行出现:

No more authentication methods to try.

Permission denied (publickey).

继续执行:

1
2
ssh-agent -s
ssh-add ~/.ssh/id_rsa

执行结束后,Identity added: …部分输出信息中,…位置时SSH KEY文件的路径信息。

如果执行 ssh-add ~/.ssh/id_rsa 时出现Could not open a connection to your authentication agent错误。

则执行ssh-agent bash,然后再执行 ssh-add ~/.ssh/id_rsa 即可。

3.配置GitHub端

配置步骤如下:

  • 复制生成的id_rsa.pub文件的内容;
  • 进入github,在settings下,SSH and GPG keys 下 new SSH key;
  • 将复制的内容粘贴到Key中,完成后点击Add SSH key;