Scp/sshを使用していくつかのファイルをサーバーにアップロードしたい。証明書ベースの認証を使用する必要があることがわかりましたが、質問はどのようになりますか?本当にやりたいのは、Gitで使用するのと同じ種類の資格情報(Jenkinsに保存されているパスワード付きのssh証明書)を使用することです。しかし、どうすればよいかわかりません-スニペットジェネレーターには、そのための明確なオプションがありません。
他の人は何をしますか?これを行う文書化されていない機能はありますか?
SSHエージェントプラグイン をインストールする場合、 ssh-agent
ssh-agentをアクティブにしてシェルスクリプトを実行するパイプラインステップ。 ssh-agent
は、Jenkins資格情報ID(git用のパスワードのようなssh証明書)を受け取ります。
withCredentials([sshUserPrivateKey(credentialsId: "yourkeyid", keyFileVariable: 'keyfile')]) {
stage('scp-f/b') {
sh "scp -i ${keyfile} do sth here"
}
}
たぶんこれはあなたが望むものです。インストールCredentials Plugin
およびCredentials Binding Plugin
。資格情報を追加すると、「yourkeyid」が取得され、この資格情報がkeyFileVariable、passwordVariableなどにバインドされます。
詳細とドキュメントは、JenkinsのGithubサイトで見つけることができます Credentials Binding Plugin 、 Credentials Plugin 、 SSH Pipeline Steps plugin