이 스크립트를 시작하면:
#!/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
루트 사용자는 루트로 실행하지 않을 때 사용하는 것과 동일한 개인 키를 가지고 있지 않습니다. 따라서 루트 사용자는 자료를 복사할 수 없습니다.
~/.ssh/id_rsa
추가 대상 /root/.ssh/id_rsa
(또는 연결하는 데 사용한 다른 개인 키 )을 복사해 보세요 myip
.
또는 사용자가 sudo
다른 작업을 수행하고 복사를 수행하기 전에 스크립트에서 명시적으로 "일반" 사용자로 다시 변경하도록 합니다.