使用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到本地了。記得要切回原來的倉庫目錄