問題:
當(dāng)我要從github上下載我的一個(gè)項(xiàng)目時(shí),通過ssh的方式下載時(shí),報(bào)了如下的錯(cuò)誤:
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.
Failed during: git fetch origin master:refs/remotes/origin/master --tags --force
原因分析
Permission denied (publickey) 沒有權(quán)限的publickey ,出現(xiàn)這錯(cuò)誤一般是以下兩種原因
- 客戶端與服務(wù)端未生成 ssh key
- 客戶端與服務(wù)端的ssh key不匹配
找到問題的原因了,解決辦法也就有了,重新生成一次ssh key ,服務(wù)端也重新配置一次即可。
解決方案
電腦重置ssh
- 重新生成
ssh key
ssh-keygen -t rsa -C "自己的郵箱"
然后一路回車即可
- 驗(yàn)證github權(quán)限
// 輸入命令:
ssh -v git@github.com
// 顯示結(jié)果:
No more authentication methods to try.
Permission denied (publickey).
- 獲取ssh key 相關(guān)信息:
在終端再執(zhí)行以下命令
ssh-agent -s
ssh-add ~/.ssh/id_rsa
得到ssh key文件路徑的信息
github配置
- 復(fù)制新生成的
id_rsa.pub里的內(nèi)容 - 進(jìn)入你的github賬號(hào),在settings下,new SSH key,然后將id_rsa.pub里的內(nèi)容復(fù)制到Key中,完成后Add SSH Key。
驗(yàn)證ssh key
輸入如下命令:
ssh -T git@github.com
提示如下:
Hi YuY-QK! You've successfully authenticated, but GitHub does not provide shell access.
說明:
- 如果設(shè)置了 sshkey 還是 permission denied 怎么回事?
回到如下命令,檢查當(dāng)前配置的SSH對(duì)應(yīng)的git賬號(hào);
然后用如下命令(id_rsa對(duì)應(yīng)目標(biāo)賬戶的私鑰)命令,制定目標(biāo)Git賬號(hào)
ssh-add -k ~/.ssh/id_rsa
附上git教程:
https://git-scm.com/book/zh/v2