Gitlab,Mac下生成SSH Key

      git是分佈式的代碼管理工具,遠程的代碼管理是基於ssh的,因此要使用遠程的git則須要ssh的配置。簡單的說,Git - 版本控制工具;Github是一個網站,提供給用戶空間建立git倉儲,保存用戶的一些數據文檔或者代碼等;GitLab是基於Git的項目管理軟件git

 

  首先,使用代碼管理工具把本地的代碼上傳到服務器時須要加密處理,加密傳輸的算法有不少種,git可以使用rsa,rsa要解決的一個核心問題是,如何使用一對特定的數字,使其中一個數字能夠用來加密,而另一個數字能夠用來解密。這兩個數字就是你在使用git和github,gitlab的時候所遇到的public key也就是公鑰以及private key私鑰。github

      其中,公鑰就是那個用來加密的數字,這也就是爲何你在本機生成了公鑰以後,要上傳到github的緣由。從github發回來的,用那公鑰加密過的數據,能夠用你本地的私鑰來還原。若是你的key丟失了,無論是公鑰仍是私鑰,丟失一個都不能用了,解決方法也很簡單,刪除原有的key,從新再生成一次,而後在github.com裏再設置一次就行在我的電腦生成ssh密鑰後,會同時生成一個公開密鑰和一個私有密鑰,默認狀況下在用戶主目錄下的.ssh目錄中,密鑰爲id_rsa,公開密鑰爲id_rsa.pub。算法

密鑰和公開密鑰是共同使用的,協同開發中,通常會將公鑰配置在服務器中,這樣方便常常登陸,也不須要輸入密碼,這是如今集羣和各類雲平臺經常使用的登陸方式,密鑰在本地不被泄漏就很是安全。安全


   在我的電腦生成ssh密鑰後,會同時生成一個公開密鑰和一個私有密鑰,默認狀況下在用戶主目錄下的.ssh目錄中,密鑰爲id_rsa,公開密鑰爲id_rsa.pub。

  密鑰和公開密鑰是共同使用的,協同開發中,通常會將公鑰配置在服務器中,這樣方便常常登陸,也不須要輸入密碼,這是如今集羣和各類雲平臺經常使用的登陸方式,密鑰在本地不被泄漏就很是安全。服務器

步驟1.檢查是否已經存在SSH Key

打開電腦終端,輸入如下命令:ssh

 

ls -al ~/.ssh 

 

會出現兩種狀況  分佈式

 

步驟2. 生成/設置SSH Key

 

繼續上一步可能出現的狀況   工具

(1)狀況一:終端出現文件id_rsa.pub 或 id_dsa.pub,則表示該電腦已經存在SSH Key,此時可繼續輸入命令:gitlab

 

pbcopy < ~/.ssh/id_rsa.pub    

 

這樣你須要的SSH Key 就已經複製到粘貼板上了,而後進行步驟3網站

(2)狀況二:終端未出現id_rsa.pub 或 id_dsa.pub文件,表示該電腦尚未配置SSH Key,此時須要輸入命令:

 

ssh-keygen -t rsa -C "your_email@example.com"  

 

(注意,這裏的  your_email@example.com  是你本身的郵箱,選通常的經常使用的郵箱便可,筆者當時用的是騰訊企業郵箱,就出現了一點小問題,因此不經常使用的郵箱通常不推薦) 默認會在相應路徑下(/your_home_path)生成id_rsa和id_rsa.pub兩個文件,此時終端會顯示:
 
   Generating public/private rsa key pair. 
  Enter file in which to save the key (/your_home_path/.ssh/id_rsa): 

   連續回車便可,也可能會讓你輸入密碼,密碼就是你的開機密碼 (注:Jenkins中添加祕鑰時,Passphrase要寫此處輸入的密碼)
 
  

 

 
此時再輸入命令:ls -al ~/.ssh    就會出現id_rsa.pub 和 id_dsa.pub兩個文件,而後重複狀況一的步驟即輸入如下命令再進行步驟3便可:
 
pbcopy < ~/.ssh/id_rsa.pub

 

步驟3.將SSH Key添加到GitLab中(注:此處添加的是公鑰key)

Gitlab--登陸--進入項目--右側settings---Repository---Deploy Keys---title、key分別添加後點擊」Add key"

 

注意點:

  Jenkins添加從Git拉取代碼的key是私鑰key

  查看私鑰key:

pbcopy < ~/.ssh/id_rsa
相關文章
相關標籤/搜索