2016-06-14 89 views
4

Jenkins2.0パイプラインターゲットマシンにはリモートsshが必要です。 私の以前のアプローチは、「sshを使ってリモートホスト上でシェルスクリプトを実行する」ことでした。私はユーザー名とパスワードの両方を指定したいと思います。Jenkinsパイプライン:SSHAgentリモートssh

私はグルーヴィーなアプローチが

sshagent(['RemoteCredentials']) { 
    sh 'ssh -o StrictHostKeyChecking=no -l remoteusername remotetarget uname -a' 
    } 

RemoteCredentialsようなものにshoudことを読んだ:それはパスフレーズ

と秘密鍵は、ユーザー名/パスワードのリモート資格情報を使用してSSHを作るための方法はありますか? sshagentだから、残念ながら、あなたは正しい

リッカルド

+1

http://stackoverflow.com/questions/29746313/how-to-download-protected-resources-in-a-jenkins-workflow – izzekil

答えて

5

AUTHユーザー名/パスワードをサポートしていません。

ssh-agent-pluginは、JenkinsのCredentials Managementエリアから追加された保存されたユーザー、パスフレーズ、公開鍵証明書のみをサポートしているようです。 See this unit testは、ssh-agentが公開鍵に基づいて正しく動作していることを確認します。ユーザー+パスワードの認証をサポートするために、プラグインにテストされていない機能があるとは考えにくいです。

可能であれば、公開鍵ベースの認証に切り替えることができます。なんらかの理由であなたが切り替えることができない場合... あなたのJenkinsボックスにsshpassをインストールしますが、これは一般的に悪い習慣とみなされます。

node { 
    stage 'Does sshpass work?' 
    sh 'sshpass -p \'password\' ssh [email protected] "ls; hostname; whois google.com;"' 
} 
+1

あなたがこのアプローチを使用している場合でも、使用することを覚えて、これをチェックJenkinsfileのパスワードを公開しないようにするには、少なくとも[withCredentials](https://wiki.jenkins.io/display/JENKINS/Credentials+Binding+Plugin)を使用してください。 – dag

関連する問題