網站首頁 編程語言 正文
一、什么是憑證
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憑據。
原文鏈接:https://www.cnblogs.com/dotnet261010/p/12393917.html
相關推薦
- 2022-10-29 Clickhouse通過命令導入導出文件(在Linux命令窗口)
- 2023-01-05 Kotlin?高階函數與Lambda表達式示例詳解_Android
- 2022-01-29 android打包證書生成
- 2022-04-11 following signatures couldn‘t be verified because
- 2022-07-28 C++超詳細講解函數重載_C 語言
- 2022-10-05 Iptables防火墻基本匹配條件應用詳解_安全相關
- 2022-08-16 C#?winform?請求http的實現(get,post)_C#教程
- 2022-10-07 Android?drawFunctor?原理及應用詳情_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支