SSH方式 git pull
使用SSH关联远程仓库,git pull的时候遇到报错:
以往使用的都是HTTPS,没有过这样的问题
网上查了问题,如果使用SSH,要先在本地生成ssh key。
cd ~/.ssh进入ssh目录
ls 查看目录下的文件
可以看到只有一个known_hosts文件
下面进入正题。
第一步,输入命令:ssh-keygen -t rsa -C "xxxxxx@xxx.com" (此处邮箱地址改为你自己的邮箱地址)
中途会提示让你输入密码,不需要管,一路回车即可(一共好像敲三次回车),然后会生成你的ssh key (如果重新生成的话会覆盖之前的ssh key)
第二步,输入命令:ssh -v git@github.com
最后两句会出现:
No more authentication methods to try.
Permission denied (publickey).
第三步,输入命令:ssh-agent -s
然后会提示类似的信息:
SSH_AUTH_SOCK=/tmp/ssh-nju2ZPGNXhZo/agent.5372; export SSH_AUTH_SOCK;
SSH_AGENT_PID=5240; export SSH_AGENT_PID;
echo Agent pid 5240;
第四步,输入命令:ssh-add ~/.ssh/id_rsa
这时候应该会提示:
Identity added: ...(这里是一些ssh key文件路径的信息)
(注意)如果出现错误提示:
Could not open a connection to your authentication agent.
请执行命令:eval `ssh-agent -s`后继续执行命令 ssh-add ~/.ssh/id_rsa,这时候一般没问题啦
第五步,输入命令:vi id_rsa.pub 复制里面的内容。
复制完以后先按 i 键切换为插入模式,
然后按 esc 键,输入 :wq (是冒号wq) 退出编辑。 回到原来的命令界面
进入你的github账号,在settings下,选择Deploy keys,Add deploy key,把刚刚复制的key粘贴进来
Title可以随便取,记得把Allow write access勾上,这样就可以写入到仓库。
下图已经生成成功
最后一步,验证Key
命令窗口输入命令:ssh -T git@github.com
提示:Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
这时候问题就解决啦,再次使用git pull origin master 就可以把远程仓库的文件pull到本地了。记得要切回原来的仓库目录