Script funciona sem sudo, falha com sudo

0

Quando eu inicio este script:

#!/bin/bash -v
sshpass -p '<pypasswd>' scp blah.img root@myip:/home/user/blah.img
exit 0

com

./script.sh

ou

nohup ./script.sh &

funciona.

Mas quando eu faço

nohup sudo ./script.sh &

falha (nada é carregado e uma vez recebi um erro de autenticação, que não consigo mais reproduzir). Por quê?

Nota: Eu costumo usar nohup sudo ./script.sh & para alguns outros scripts e normalmente funciona perfeitamente.

Nota 2: Eu realmente preciso de sudo porque há outras coisas no meu script que precisam de sudo.

    
por Basj 18.06.2015 / 12:24

2 respostas

2

Eu suspeito que não há myip registrado em /root/.ssh/known_hosts . Por favor, tente uma vez sudo ssh root@myip interativamente antes de executar esse script.

Como alternativa, você pode desativar a verificação da chave do host:

#!/bin/bash -v
sshpass -p '<pypasswd>' scp -o StrictHostKeyChecking=no blah.img root@myip:/home/user/blah.img
exit 0
    
por 18.06.2015 / 12:37
1

Seu usuário root não possui as mesmas chaves privadas que você está usando quando não está executando como root. Portanto, como root, você não pode copiar o material.

Tente copiar adicionando ~/.ssh/id_rsa a /root/.ssh/id_rsa (ou alguma outra chave privada que você esteja usando para se conectar a myip ).

Como alternativa, deixe o sudo fazer as outras coisas e mude de volta para o usuário "normal" no script explicitamente antes de fazer a cópia.

    
por 18.06.2015 / 12:29

Tags