解決git@github.com: Permission denied (publickey). Could not read from remote repository
原因分析
Permission denied(publickey)一般有兩種原因。
- 客戶端與服務端未生成 ssh key
- 客戶端與服務端的ssh key不匹配
1. 生成ssh key
ssh-keygen -t rsa -C "xxxx@xxx.com"
# 注意ssh和-keygen之間沒有空格
# 之后需要輸入密碼等,不管一路回車即可。
# 默認的就會在C/User/CurrentUser/.ssh/id_rsa下面生成 id_rsa 和 id_rsa.pub兩個文件。
2.測試登錄
ssh -v git@github.com
最后會出現
debug1: No more authentication methods to try.
git@github.com: Permission denied(publickey).
3.終端執行
ssh-agent -s
# SSH_AUTH_SOCK=/tmp/ssh-csx2das143s/agent.1974; export SSH_AUTH_SOCK;
# SSH_AGENT_PID=1975; export SSH_AGENT_PID;
# echo Agent pid 1975;
4.終端執行
ssh-add ~/.ssh/id_rsa
# Could not open a connection to your authentication agent.
5.終端執行
ssh-agent bash
6.終端執行
ssh-add ~/.ssh/id_rsa
# Identity added: /C/User/CurrentUser/.ssh/id_rsa (xxxx@xxx.com)
7.配置 github端
- 點頭像,進入Personal settings/SSH and GPG keys
- 點擊 New SSH key
- title 隨便起
- 內容是 /C/User/CurrentUser/.ssh/id_rsa下的id_rsa.pub的內容。
8.驗證Key
ssh -T git@github.com
#Hi sweatma! You've successfully authenticated, but GitHub does not provide shell access.