首頁 > 軟體

為Jenkins新增SSH全域性憑證

2022-03-23 16:00:42

一、什麼是憑證

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

到此這篇關於為Jenkins新增SSH全域性憑證的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com