
O comando abaixo funciona bem no meu host local e obtenho a saída desejada. Veja abaixo
$ ssh -o ConnectTimeout=7 -o BatchMode=yes [email protected] "echo WORKS;exit"
Output:
WORKS
Agora, coloquei este comando em um arquivo de script test.sh
com privilégios de execução suficientes
$ cat test.sh
segment=$(ssh -o ConnectTimeout=7 -o BatchMode=yes [email protected] "echo WORKS;exit")
echo "SEGMENT $segment"
Não obtenho a saída desejada. Na verdade, recebo o erro abaixo:
$ ./test.sh
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SEGMENT
eu estava esperando
SEGMENT WORKS
Agora, o erro Permissão negada desaparece, mas
Você pode sugerir qual poderia ser o problema?
Responder1
O problema é que usei um alias
alias ssh=ssh -i /app/private_key
armazenado no perfil do usuário. No entanto, esta configuração não tem efeito em um script de shell (consulteaquipor exemplo), então tive que ligar explicitamente
ssh -i app/private_key
no roteiro. Isso resolveu o problema.