El comando funciona pero se produce un error de permiso denegado cuando se ejecuta desde un script

El comando funciona pero se produce un error de permiso denegado cuando se ejecuta desde un script

El siguiente comando funciona bien desde mi host local y obtengo el resultado deseado. Vea abajo

$ ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit"
Output:
WORKS

Ahora, puse este comando en un archivo de script test.shque tenga suficientes privilegios de ejecución.

$ cat test.sh
segment=$(ssh -o ConnectTimeout=7  -o BatchMode=yes [email protected] "echo WORKS;exit")
echo "SEGMENT $segment"

No obtengo el resultado deseado. De hecho, aparece el siguiente error:

$ ./test.sh
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SEGMENT

Yo estaba esperando

SEGMENT WORKS

Ahora, el error de Permiso denegado desaparece pero

¿Puede sugerir cuál podría ser el problema?

Respuesta1

El problema fue que usé un alias.

alias ssh=ssh -i /app/private_key

almacenado en el perfil de usuario. Sin embargo, esta configuración no tiene efecto en un script de shell (consulteaquípor ejemplo), así que tuve que llamar explícitamente

ssh -i app/private_key

en el guión. Esto resolvió el problema.

información relacionada