Jenkins:添加SSH全局憑證


一、什么是憑證

1、憑據簡介

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

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

Jenkins中保存的憑證可以用於:

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

2、憑據分類

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主機證書身份驗證憑證。

這些憑證的分類可以在全局憑據里面看到:

3、憑據安全

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

這樣就最大限度地減少了向Jenkins用戶暴露實際證書本身的可能性,並且限制了將功能證書從一個Jenkins實例復制到另一個Jenkins實例的能力。

二、添加憑據

我們這里以添加SSH Username with private key為例,講解如何添加一個Jenkins的憑據。

在上面說過,SSH憑據需要一對私鑰,所以我們首先需要生成SSH Key。

使用下面的命令可以生成SSH Key:

$ 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,有兩種方式添加證書憑證。

1、創建的時候添加

 點擊Credentials后面的"Add",選擇“Jenkins”,如下圖所示:

 然后選擇“SSH Username with private key”,如下圖所示:

 選擇Private Key,如下圖所示:

把上面生成的私鑰復制到這里,給Username起一個名稱即可。

最后點擊“添加”按鈕即可完成添加SSH 憑證。

注意:這里在拷貝私鑰的時候,一定要把生成的私鑰文件里面的所有內容都拷貝進來。

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

2、在憑證里面添加

我們也可以在憑據里面添加

同樣還是選擇“SSH Username with private key”,如下圖所示:

然后下面的步驟和剛才的就一樣了,輸入生成的私鑰即可。這樣就配置好了SSH憑據。


免責聲明!

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



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