rsyncを使用してファイルをデバイスにコピーしています。
sshpass -p <password> rsync -avzP <file> <user>@<IP address>:<folder>
以前はこの方法はうまくいきましたが、新しいデバイスにコピーしてみましたが、次のような結果が出ました。
Host key verification failed.
rsync error: unexplained error (code 255) at rsync.c(703) [sender=3.2.3]
私は削除しようsshpass
とした結果、rsync -avzP <file> <user>@<IP address>:<folder>
次のようになりました。
The authenticity of host '<IP address>' can't be established.
<Name> key fingerprint is SHA256:<hex>.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
入力するとyes
問題が解決し、元のコマンドを実行できました。しかし、1つのコマンドでこれをどのように実行できますかsshpass
?
答え1
またはStrictHostKeyChecking
に設定すると、新しいホストがファイルに自動的に追加されます。デフォルト値はです。accept-new
no
~/.ssh/known_hosts
ask
ホストキーが変更されると、次に始まる警告メッセージが表示されます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
接続を許可するように設定されている場合no
。使用時にaccept-new
ホストキーの変更は許可されておらず、まず問題のある行を削除する必要がありますknown_hosts
。
sshpass -p <password> rsync -avzP -e 'ssh -o StrictHostKeyChecking=accept-new' <file> <user>@<IP address>:<folder>
すべてのホストのデフォルト設定を上書きするには、次の場所にエントリを追加できます~/.ssh/config
。
Host *
StrictHostKeyChecking accept-new
答え2
known_hosts
このパスにあるファイルを削除する必要があります。~/.ssh/known_hosts
この"-o StrictHostKeyChecking=no"
オプションを使用すると、ホストキーの確認プロンプトをバイパスし、新しいホストキーをファイルに自動的に追加できますknown_hosts
。更新されたコマンドは次のとおりです。
sshpass -p <password> rsync -o StrictHostKeyChecking=no -avzP <file> <user>@<IP address>:<folder>