web-dev-qa-db-ja.com

「ホストキーの検証に失敗しました」について

2つの仮想マシンでUbuntu 10.04を使用しています。 1台のマシンにHudsonをインストールし、別のマシンでklocworkを実行します。シナリオは、Hudsonでビルドをトリガーするとき、スクリプトを正常に実行し、VM2でKlocworkを呼び出す必要があります。ビルドスクリプトでは、マシン2でKlocworkを呼び出す次のコマンドを指定しました。

if [ $Klocwork = "true" ]; then
echo "Starting Klocwork Report ..."
sshpass -p 'password' ssh IP-address "Sudo chmod 755 /local path/build_script_kw.sh;/local path/build_script_kw.sh $SVNID $Version"
fi
echo "Build Successfully."

スクリプトを実行すると、Host key verification failedエラーが発生します。この問題の解決策を教えてください。ありがとう。

1
bsreeram031187

次のコマンドを使用して、厳密なホストキー検証チェックをスキップできます。

sshpass -p '<your_password>' ssh <your_server_ip> -o StrictHostKeyChecking=no

上記のコマンドは、/root/.ssh/known_Hostファイルにキーが存在しない場合に問題を解決しますが、古いキーが存在する場合は、次のコマンドで最初に削除する必要があることに注意してください。

ssh-keygen -R hostname
7
Not a bug

別のシステムに初めて接続すると、リモートシステムの暗号化キーの指紋が表示されます(これは、妄想を感じている場合はオフラインで確認できます)。

リモートシステムでは、コマンドssh-keygen -lf /etc/ssh/ssh_Host_rsa_keyは、初めて接続したときに表示される指紋を表示します。

これが予想されるフィンガープリントであることを確認すると、リモートシステムの名前とともにファイル$HOME/.ssh/known_hostsに保存されるため、再度接続してキーが変更された場合は、リモートに警告が表示されますシステムが変更されたか、通信が傍受されています(可能性は低いですが、それでも...)。

この場合、リモートシステムを再インストールした可能性があります(そのため、新しいSSHキーが同じ名前になります)。したがって、変更されたという警告が表示されます。

これを修正するには、known_hostsファイルから既存のエントリを削除する必要があります。接続する他のマシンのIDの確認を再度求められない場合は、known_hostsを削除するだけで、次回SSHを使用するときに再作成されます。または、ssh-keygenHOSTNAMEはリモートマシンの名前)を実行することにより、ssh-keygen -R HOSTNAMEコマンドを使用して問題のキーを削除できます。

1
chronitis