web-dev-qa-db-ja.com

scpコマンド中にyes引数を渡します

これらのコマンドを単純に実行すると問題が発生します。

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

それはまだ求めています。

16
Harry shah
scp -o StrictHostKeyChecking=no root@IP:/root/K 

明らかに、これは非常に安全なソリューションではありません。ただし、真ん中の男を気にしないワンショットに適しています。

15
economy

私にとって、これはうまくいきます:

 yes | scp -r /opt/MyFiles root@<MyNewServerIP>:/opt/MyFiles

よろしく。 =)

7
Chuss

おそらくこれを行う最良の方法は、scpコマンドの前に次のコマンドを使用することです。

ssh-keyscan -H ${SSH_Host} >> ~/.ssh/known_hosts

これにより、SSH_Hostが既知のホストに追加され、scpは文句を言いません。

0
Colton Hicks