設定 Jenkins 以執行 ssh 命令——在哪裡儲存禁用登入的使用者的 SSH 金鑰?

設定 Jenkins 以執行 ssh 命令——在哪裡儲存禁用登入的使用者的 SSH 金鑰?

我正在嘗試生成一個金鑰對,以允許詹金斯伺服器透過 ssh 到另一個伺服器(透過 ssh-steps 插件,如果相關的話)。公鑰將進入目標主機上的授權金鑰。我的理解是它應該很簡單,例如:

sudo su - [jenkins user]
ssh-keygen -t rsa -b 4096 -C jenkinsuser@jenkinshost 

然後將密鑰保存到/home/jenkinsuser/.ssh/id_rsa並獲取公鑰以添加到主機上的授權密鑰。

我看到的是,這sudo su - jenkinsuser不起作用,並/etc/passwd顯示該用戶的 shell 設定為/bin/false,以根據我的理解停用登入。

考慮到這一點,我正在尋找為 ssh 密鑰指定位置的最佳實踐,因為用戶已停用登錄,因此沒有主目錄。

答案1

詹金斯有一個內建的憑證儲存這是放置 Jenkins 作業使用的 SSH 金鑰的最合適位置。憑證儲存旨在儲存 Jenkins 作業使用的各種憑證,例如 SSH 金鑰、使用者名稱/密碼和 API 金鑰。憑證儲存允許存取委派並確保敏感憑證不會寫入作業輸出。

答案2

您無需成為 root 即可執行金鑰產生腳本。

我通常將所有密鑰存儲在/etc/ssh.這是主目錄之外的,我認為/etc這是最準確的目錄。

相關內容