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憑據。