github/gitlab ssh-key公鑰各種問題 解決


一、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將軍令動態密碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM