
私は、jenkins サーバーが別のサーバーに 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
このユーザーのシェルが に設定され/bin/false
、ログインが無効になっていることを示しています。
それを念頭に置いて、ユーザーのログインが無効になっており、ホーム ディレクトリがないため、SSH キーの場所を指定するためのベスト プラクティスを探しています。
答え1
Jenkinsには組み込みの資格情報ストアこれは、Jenkins ジョブで使用される SSH キーを配置するのに最適な場所です。資格情報ストアは、SSH キー、ユーザー名/パスワード、API キーなど、Jenkins ジョブで使用されるさまざまな種類の資格情報を格納するために設計されています。資格情報ストアにより、アクセスの委任が可能になり、機密性の高い資格情報がジョブ出力に書き込まれないようにすることができます。
答え2
キー生成スクリプトを実行するために root である必要はありません。
私は通常、すべてのキーを に保存します/etc/ssh
。これはホーム ディレクトリの外にあり、/etc
そのために最も適切なディレクトリだと思います。