
我正在嘗試生成一個金鑰對,以允許詹金斯伺服器透過 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
這是最準確的目錄。