Jenkins:添加SSH全局憑證

1、什麼是憑證

一、憑據簡介

有許多第三方網站和應用程序能夠與Jenkins進行交互,例如代碼倉庫GitHub等。git

此類應用程序的系統管理員能夠在應用程序中配置憑證以專供Jenkins使用。一般經過將訪問控制應用於這些憑證來完成這項工做,以「鎖定Jenkins可用的應用程序功能區域」。一旦Jenkins管理員在Jenkins中添加/配置這些憑證,Jenkins項目就能夠使用憑證與這些第三方應用程序進行交互。安全

Jenkins中保存的憑證能夠用於:ssh

  • 適用於Jenkins的任何地方(即全局證書)。
  • 特定的Jenkins項目。
  • 特定的Jenkins用戶。

二、憑據分類

Jenkins能夠保存下面幾種憑證:網站

  • Secret text:例如 API Token(例如GitHub的我的access token)。
  • Username with password:指的是登陸GitHub的用戶名和密碼,能夠做爲單獨的組件處理,也能夠做爲username:password格式的冒號分割字符串來處理。
  • Secret file:其實是文件中的祕密內容。
  • SSH Username with private key:即便用私鑰的SSH 用戶名。這是一個SSH 祕鑰對。公鑰配置在GitHub上面,這裏添加私鑰。
  • Certificate:即證書。一個PKCS#12證書文件和可選的密碼。
  • Docker Host Certificate Authentication:即Docker主機證書身份驗證憑證。

這些憑證的分類能夠在全局憑據裏面看到:加密

三、憑據安全

爲了確保安全,Jenkins中配置的憑據在Jenkins主實例中加密存儲(經過Jenkins實例的ID來加密),而且只能經過它們的憑據ID在Pipeline項目中處理。spa

這樣就最大限度地減小了向Jenkins用戶暴露實際證書自己的可能性,而且限制了將功能證書從一個Jenkins實例複製到另外一個Jenkins實例的能力。3d

2、添加憑據

咱們這裏以添加SSH Username with private key爲例,講解如何添加一個Jenkins的憑據。code

在上面說過,SSH憑據須要一對私鑰,因此咱們首先須要生成SSH Key。blog

使用下面的命令能夠生成SSH Key:token

$ ssh-keygen -t rsa -C "your_email@youremail.com"

以下圖所示:

全部選項都是默認,一直回車便可生成。生成以後在.ssh文件夾下就會生成文件,以下圖所示:

一共會生成兩個文件:

  • id_rsa。這個是私鑰文件。
  • id_rsa.pub。這個是公鑰文件,須要配置到GitHub上面。

登陸GitHub,而後在帳戶下面選擇「Settings」:

而後選擇「SSH and GPG keys」:

 而後點擊「New SSH key」,把生成的id_rsa.pub文件裏面的內容拷貝進來便可:

這樣就添加完成了SSH key。

Jenkins在拉取git項目代碼的時候,若是沒有配置「證書憑證Credentials」或者配置的不對,就會出現以下圖所示的報錯信息:

這時候就須要添加證書憑證Credentials,有兩種方式添加證書憑證。

一、建立的時候添加

 點擊Credentials後面的"Add",選擇「Jenkins」,以下圖所示:

 而後選擇「SSH Username with private key」,以下圖所示:

 選擇Private Key,以下圖所示:

把上面生成的私鑰複製到這裏,給Username起一個名稱便可。

最後點擊「添加」按鈕便可完成添加SSH 憑證。

注意:這裏在拷貝私鑰的時候,必定要把生成的私鑰文件裏面的全部內容都拷貝進來。

在選擇憑證的時候選擇剛纔添加的憑證,這時就不會在報錯了:

二、在憑證裏面添加

咱們也能夠在憑據裏面添加

一樣仍是選擇「SSH Username with private key」,以下圖所示:

而後下面的步驟和剛纔的就同樣了,輸入生成的私鑰便可。這樣就配置好了SSH憑據。

相關文章
相關標籤/搜索