當我們在git上創建完了倉庫之後,需要創建SSH-key,由於本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密的,所以必須要讓github倉庫認證你SSH key,在此之前,必須要生成SSH key。
生成SSH key步驟如下
1、cd ~ 進入當前目錄, ls -a 查看 .ssh 文件夾是否存在,如果沒有,則 mkdir .ssh 創建該文件夾
2、cd ~/.ssh 進入目錄
查看目錄下是否有id_rsa(私鑰),id_rsa.pub(公鑰)文件
如果沒有的話,直接創建即可
3、輸入 ssh-keygen -t rsa -C
"[email protected]"
如果在生成key的過程中不指定文件名稱,就會生成默認文件(id_rsa,id_rsa.pub)如果第一次創建,可以不用指定,直接創建,但是如果已經有了id_rsa,id_rsa.pub文件,其他的地方還在用,這時候就不能直接覆蓋,需要在(/Users/xxx/.ssh/id_rsa):xxxxx(指定文件名稱)
設置密碼
生成文件
4、將id_rsa.pub_github文件中內容copy至github的SSH Keys中
5、測試是否可以連接,ssh -T [email protected]
如果報錯的話,還需要配置config文件
6、配置config文件
#github
Host github
HostName github.com
User [email protected]
IdentityFile ~/.
ssh
/id_rsa_github
7、測試
如果出現讓輸入密碼,基本是OK的
如果出現 [email protected]: Permission denied (publickey).的錯誤
則說明沒有權限訪問github
ssh -v [email protected]
查看上圖發現,默認讀取的還是默認的文件 id_rsa
但是我自己 .ssh 文件夾下的是id_rsa_github的文件,這個id_rsa_github文件是沒有在 ssh key 隊列裏的
因此,執行命令 ssh-add id_rsa_github將id_rsa_github文件加入到此隊列中,然後在進行測試即可。
問題記錄:
有一次我切換用戶至root,在切換回來的時候,git pull 代碼的時候就報 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password) 的錯誤,意思是沒有權限。下面是解決此問題的步驟
1、我查看github上的publicKey是有的,.ssh下的文件內容也是OK的,但是就是報這個錯誤
最後通過 ssh -v [email protected] 發現沒有添加 id_rsa的文件信息
2、通過ssh-add id_rsa_github的時候 報錯 Could not open a connection to your authentication agent 意思是
無法打開到您的身份驗證代理的連接。然後 執行 eval `ssh-agent` ,在 ssh-add id_rsa 就可以克隆提交或拉取代碼了
內容參考:https://www.cnblogs.com/520yang/articles/6875260.html
https://blog.csdn.net/weixin_41610178/article/details/83996609