当我启动这个脚本时:
#!/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 &
其他一些脚本,并且通常可以完美运行。
注意2:我确实需要,sudo
因为我的脚本中还有其他东西需要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
执行其他操作,并在执行复制之前显式更改回脚本中的“普通”用户。