これらのコマンドを単純に実行すると問題が発生します。
yes
を使用して初めて接続が確立されたため、リモートサーバーはRSAファイルにキーを追加するためにscp
を渡します。
コマンドを以下に示します
#!/bin/bash
scp -P58222 root@IP:/root/K /N
/usr/bin/expect -c 'expect "\n" { expect "Are you sure you want to continue connecting (yes/no)?" }'
send "yes\r"
expect "$ "
send "exit\r"
実際、私は質問しながらスクリプトでyesを渡す必要があります
ホストの 'ipアドレス(ipアドレス)'の信頼性を確立できません。
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
接続を続行してもよろしいですか(はい/いいえ)?
どうすればこの問題を取り除くことができますか?
と
scp -o StrictHostKeyChecking=no
それはまだ求めています。
scp -o StrictHostKeyChecking=no root@IP:/root/K
明らかに、これは非常に安全なソリューションではありません。ただし、真ん中の男を気にしないワンショットに適しています。
私にとって、これはうまくいきます:
yes | scp -r /opt/MyFiles root@<MyNewServerIP>:/opt/MyFiles
よろしく。 =)
おそらくこれを行う最良の方法は、scpコマンドの前に次のコマンドを使用することです。
ssh-keyscan -H ${SSH_Host} >> ~/.ssh/known_hosts
これにより、SSH_Hostが既知のホストに追加され、scp
は文句を言いません。