web-dev-qa-db-ja.com

ssh、scp、またはsftpを使用してjenkinsパイプラインでssh認証情報を使用する

Scp/sshを使用していくつかのファイルをサーバーにアップロードしたい。証明書ベースの認証を使用する必要があることがわかりましたが、質問はどのようになりますか?本当にやりたいのは、Gitで使用するのと同じ種類の資格情報(Jenkinsに保存されているパスワード付きのssh証明書)を使用することです。しかし、どうすればよいかわかりません-スニペットジェネレーターには、そのための明確なオプションがありません。

他の人は何をしますか?これを行う文書化されていない機能はありますか?

11
johnfo

SSHエージェントプラグイン をインストールする場合、 ssh-agent ssh-agentをアクティブにしてシェルスクリプトを実行するパイプラインステップ。 ssh-agentは、Jenkins資格情報ID(git用のパスワードのようなssh証明書)を受け取ります。

10
Joep Weijers
    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 PluginCredentials PluginSSH Pipeline Steps plugin

26
tianzhipeng