一、window
0. cd ~/.ssh ls來查看是否有文件id_rsa以及文件id_rsa.pub
1. 首先,如果你沒有ssh key的話,在ternimal下輸入命令:ssh-keygen -t rsa -C "youremail@example.com", youremail@example.com改為自己的郵箱即可,途中會讓你輸入密碼啥的,不需要管,一路回車即可,會生成你的ssh key。(如果重新生成的話會覆蓋之前的ssh key。)
2.然后再ternimal下執行命令:
ssh -v git@github.com
最后兩句會出現:
No more authentication methods to try.
Permission denied (publickey).
3.這時候再在ternimal下輸入:
ssh-agent -s
然后會提示類似的信息:
SSH_AUTH_SOCK=/tmp/ssh-GTpABX1a05qH/agent.404; export SSH_AUTH_SOCK;
SSH_AGENT_PID=13144; export SSH_AGENT_PID;
echo Agent pid 13144;
4.接着再輸入:
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,這時候一般沒問題啦。
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@github.com
提示:Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
7.驗證是否添加成功
ssh -T git@gitlab.com
如果是公司的git則
ssh -T git@example.com
ssh -T git@github.com
我們就可以愉快的使用ssh協議進行代碼的拉取以及提交等操作了
我們為什么要使用ssh協議呢?因為ssh更加安全,然后更加方便,比如我們公司的gitlab由http協議換成了https協議,那么如果你是使用http協議管理代碼,那么需要修改所有的項目中的git地址變成https,這會把我們給逼瘋的!但是如果我們一開始就是用ssh協議,這不需要任何的修改,簡直不能再爽一點了。
一句話:本地(注冊gitlab的郵箱)生成公鑰--------注冊郵箱登錄gitlab------頭像--setting---ssh-keys添加.pub文件內容
有些公司(網易)需要將公鑰傳到zero平台、OTP將軍令動態密碼