site-deploy を使用しているときにこのプロンプトを表示しないようにするにはどうすればよいですか? 「接続を続行してもよろしいですか?」
この質問が何度も出されていることは知っていますが (リンク、リンク)、推奨される解決策がうまくいかないので、その理由を説明します。
ああ、私はここにまったく同じ質問を投稿しました
解決策は次のとおりです。
# Run this manually:
ssh -o UserKnownHostsFile=foo javadoc.foo.com
# Take that file and put it in your private DAV share, and then
ssh -o UserKnownHostsFile=/private/<account>/known_hosts javadoc.foo.com
これは 99% の時間正常に動作していますが、このソリューションを使用すると、ログに次のテキストが何度も何度も記録されます。
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3d:69:41:8a:ec:d1:4c:d9:75:ef:7d:71:b7:7d:61:d0.
Please contact your system administrator.
Add correct host key in known_hosts to get rid of this message.
Do you want to delete the old key and insert the new key? (yes/no)
だから、私の問題に戻ります: 一言で言えば、問題はこれです: mvn site-deploy を実行すると、Jenkins で無限ループに陥ります:
The authenticity of host 'javadoc.foo.com' can't be established.
RSA key fingerprint is 3d:69:41:8a:ec:d1:4c:d9:75:ef:7d:71:b7:7d:61:d0.
Are you sure you want to continue connecting? (yes/no)
The authenticity of host 'javadoc.foo.com' can't be established.
RSA key fingerprint is 3d:69:41:8a:ec:d1:4c:d9:75:ef:7d:71:b7:7d:61:d0.
Are you sure you want to continue connecting? (yes/no)
これが発生するマシンは CloudBees マシンであるため、私たちが所有するマシンではありません。つまり、ビルドを行うたびに、まったく新しいマシンがプロビジョニングされます。
私たちの settings.xml には次のようなものがあります。
<server>
<id>javadoc.foo.com</id>
<username>username</username>
<password>password</password>
</server>
私たちが所有して管理しているマシンの場合、手動で ssh を実行し、ssh コマンドを 1 回だけ実行して問題を解決できますが、前述のように、これらのマシンは動的にプロビジョニングされます。
Maven 2 ではなく Maven 3 を使用しているため、settings.xml のサーバー セクションに以下を追加することはできません。
<configuration>
<knownHostsProvider implementation="org.apache.maven.wagon.providers.ssh.knownhost.NullKnownHostProvider">
<hostKeyChecking>no</hostKeyChecking>
</knownHostsProvider>
</configuration>
次のいずれかの方法はありますか:
- プログラムで「はい」と答えます (これはフリー スタイルの Jenkins の仕事ではありません。これは Maven プロジェクトです)。
- site-deploy の代替 (pom.xml 内の ant コード?)
- この質問への回答が得られない場合、 site-deployは失敗します。これにより、Jenkins ビルドが、この質問が何度も繰り返されることでディスク領域がギグいっぱいになることはありません。
- site-deploy プラグインに stricthostkeychecking を「no」に設定するように指示します
ssh 設定を微調整できるビルド前の手順は避けたいと思います。settings.xml、pom.xml、または maven オプションを微調整したいと思います。
それにもかかわらず、私はどんな提案にもオープンです。