このスクリプトを起動すると:
#!/bin/bash -v
sshpass -p '<pypasswd>' scp blah.img root@myip:/home/user/blah.img
exit 0
そして
./script.sh
または
nohup ./script.sh &
効果がある
しかし、私がするとき
nohup sudo ./script.sh &
失敗しました(何もアップロードされておらず、再現できない認証エラーが発生したことがあります)。なぜ?
注:私は通常nohup sudo ./script.sh &
他のスクリプトにこれを使用し、通常は完璧に動作します。
sudo
注2:スクリプトにsudoが必要な他の項目があるため、これが必要です。
答え1
myip
そこには記録がないようです/root/.ssh/known_hosts
。sudo ssh root@myip
スクリプトを実行する前に対話的に試してください。
または、ホストキー検証を無効にすることもできます。
#!/bin/bash -v
sshpass -p '<pypasswd>' scp -o StrictHostKeyChecking=no blah.img root@myip:/home/user/blah.img
exit 0
答え2
root ユーザーは root で実行しないときに使用するのと同じ秘密鍵を持っていません。したがって、rootユーザーは素材をコピーできません。
~/.ssh/id_rsa
追加の宛先/root/.ssh/id_rsa
(または接続に使用した他の秘密鍵)をコピーしてみてくださいmyip
。
または、ユーザーがsudo
別の操作を実行してコピーを実行する前に、スクリプトを明示的に「一般」ユーザーに戻すようにします。