5

Jenkins の「シェルの実行」で SSH コマンドを実行することは可能ですか?

Jenkinsには、特にSSHタイプのコマンドに対応するビルド前およびビルド後のオプションが多数ありますが、ビルドとSCPおよびSSHコマンドの両方を実行する単一のスクリプトがあります。Jenkins はユーザーにビルド スクリプトを複数のステップに分割するように強制していますか?

「シェルの実行」は、SSHコマンドを実行しようとしているものですが、成功しませんでした。

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /var/lib/jenkins/.ssh/identity
debug1: Trying private key: /var/lib/jenkins/.ssh/id_rsa
debug1: Trying private key: /var/lib/jenkins/.ssh/id_dsa
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
Permission denied, please try again.
debug1: read_passphrase: can't open /dev/tty: No such device or address
debug1: Authentications that can continue: publickey,password
debug1: No more authentication methods to try.
Permission denied (publickey,password).
SSH Access not available for build engine
4

2 に答える 2

16

公開鍵を使用している限り、 を介してコマンドを送信したり、 を介しsshてファイルをコピーしたりできますscp。これを使用して、いくつかの特定のプロセスを生成し、さまざまな理由で既存のコマンドを介してプッシュできない特定のアーティファクトを公開します。

使用しているキーと、リモート サーバーでアドレス指定しているユーザーに注意する必要があります。多くの場合、-issh で明示的な引数を使用し、常に明示的なユーザー名を使用して、すべてが期待どおりに進むようにします。

ssh -i <key_path> <user>@<fqdn_host> <command>

スクリプトでこれを行う場合は、問題ありません。もちろん、キー ファイルは Jenkins プロセスで読み取り可能である必要があり、キーが両側にインストールされていることを確認する必要があります。

また、ssh の組み込みポリシー コントロールを使用して以下を制御することを強くお勧めします。

  • このキーを使用できるホスト
  • このキーで使用できるコマンド

特に、~/.ssh/authorized_keysssh/scp コマンドのターゲットであるホストの設定を使用して、アタッチできるホストを制限したり ( host=)、特定のキーが常に 1 つの特定のコマンドのみを実行するようにコマンドを事前にロードしたりできます ( command=) 。 .

本当に冒険的な場合はcommand=、ディレクトリ アクセスまたはコマンド アクセスのいずれかを制限する制限付きシェル コマンドを指定してコマンドを送信できます。

于 2013-08-14T13:00:53.527 に答える