tente executar o script com o sudo ./script.sh pode ser porque você está escrevendo para / root
Estou migrando algumas pastas iniciais de uma caixa do Linux para outra usando o scp. Salvei minha chave pública no arquivo authorized_keys da caixa de destino e o seguinte comando funciona perfeitamente quando eu digito na linha de comando:
scp myArch.tar root@myOtherServer:/root/dumps
... no entanto, quando eu coloco isso em um script assim ...
#!/bin/bash
tar -cf /tmp/$1.tar $1; wait
scp /tmp/$1.tar root@myOtherServer:/root/dumps
.. e chamá-lo passando um nome de pasta como um parâmetro, eu recebo o seguinte erro.
[root@myHost home]# /root/migrate myHomeFolder
Permission denied (publickey).
lost connection
Alguma idéia do que poderia ser o problema?
tente executar o script com o sudo ./script.sh pode ser porque você está escrevendo para / root
O mais provável é que o shebang tenha iniciado uma nova instância do shell bash, no qual o agente ssh não foi configurado. Para ter certeza, você pode adicionar a seguinte linha ao topo do seu script:
ssh-add -l >> $HOME/ssh.log 2>&1
execute o script e verifique o que você obtém no ssh.o
Tags permissions scp