问题:
当我要从github上下载我的一个项目时,通过ssh的方式下载时,报了如下的错误:
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) 没有权限的publickey ,出现这错误一般是以下两种原因
- 客户端与服务端未生成 ssh key
- 客户端与服务端的ssh key不匹配
找到问题的原因了,解决办法也就有了,重新生成一次ssh key ,服务端也重新配置一次即可。
解决方案
电脑重置ssh
- 重新生成
ssh key
ssh-keygen -t rsa -C "自己的邮箱"
然后一路回车即可
- 验证github权限
// 输入命令:
ssh -v git@github.com
// 显示结果:
No more authentication methods to try.
Permission denied (publickey).
- 获取ssh key 相关信息:
在终端再执行以下命令
ssh-agent -s
ssh-add ~/.ssh/id_rsa
得到ssh key文件路径的信息
github配置
- 复制新生成的
id_rsa.pub
里的内容 - 进入你的github账号,在settings下,new SSH key,然后将id_rsa.pub里的内容复制到Key中,完成后Add SSH Key。
验证ssh key
输入如下命令:
ssh -T git@github.com
提示如下:
Hi YuY-QK! You've successfully authenticated, but GitHub does not provide shell access.
说明:
- 如果设置了 sshkey 还是 permission denied 怎么回事?
回到如下命令,检查当前配置的SSH对应的git账号;
然后用如下命令(id_rsa对应目标账户的私钥)命令,制定目标Git账号
ssh-add -k ~/.ssh/id_rsa
附上git教程:
https://git-scm.com/book/zh/v2