本地上传代码时,执行命令:git push -u origin master遇到下面错误提示
gitt@: Permission denied (publickey).
fatal: Could not read from remote repository
转自:原文。
原因为本地(或者服务器)没有生成ssh key
在终端执行cd ~/.ssh ls来查看是否有文件id_rsa以及文件id_rsa.pub,如下图所示
本地没有id_rsa.pub
下面记录下解决办法:
1.首先,如果你没有ssh key的话,在ternimal下输入命令:
ssh-keygen -t rsa -C "jff1314@"
jff1314@改为自己的邮箱即可,途中会让你输入密码啥的(可为空),不需要管,一路回车即可,会生成你的ssh key。(如果重新生成的话会覆盖之前的ssh key。)
2.然后再ternimal下执行命令:
ssh -v git@
可能会出现下面错误信息
3.这时候再在ternimal下输入:
ssh-agent -s
然后会提示类似的信息:
SSH_AUTH_SOCK=/var/folders/j6/qwcj2wxj0bnbs52vzb0yp2yc0000gn/T//ssh-btKdCCbrn5uD/agent.6711; export SSH_AUTH_SOCK;
SSH_AGENT_PID=6712; export SSH_AGENT_PID;
echo Agent pid 6712;
4.接着再输入:
ssh-add ~/.ssh/id_rsa
这时候应该会提示:
Identity added: /Users/xieliping/.ssh/id_rsa (jff1314@)(这里是一些ssh key文件路径的信息)
5.执行id_rsa.pub路径 查找里面的内容,复制ssh-rsa 里面的内容
cat /Users/xieliping/.ssh/id_rsa.pub
(注意)如果出现错误提示:
Could not open a connection to your authentication agent.
请执行命令:eval ssh-agent -s后继续执行命令 ssh-add ~/.ssh/id_rsa,这时候一般没问题啦。
5.打开你刚刚生成的id_rsa.pub,将里面的内容复制,进入你的github账号,在settings下,SSH and GPG keys下new SSH key,title随便取一个名字,然后将id_rsa.pub里的内容复制到Key中,完成后Add SSH Key。
6.最后一步,验证Key
在ternimal下输入命令:
ssh -T git@
提示:
Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access.
这时候问题就解决啦,可以使用命令git push -u origin master上传代码了。