![`Permiso denegado (clave pública)` cuando se agrega la clave al Agente SSH mediante un script Bash](https://rvso.com/image/1601564/%60Permiso%20denegado%20(clave%20p%C3%BAblica)%60%20cuando%20se%20agrega%20la%20clave%20al%20Agente%20SSH%20mediante%20un%20script%20Bash.png)
Tanto en mi dispositivo móvil como en Raspberry Pi (casualmente, CPU AArch y ARM respectivamente), ssh-agent
no está cargado de forma predeterminada.
Primero tengo que iniciar el ssh-agent
:
eval `ssh-agent -s`
Luego procedo a agregar la clave al agente:
ssh-add /home/jimjamz/.ssh/myKey
Se me solicita una contraseña y la introduzco. Luego se agrega la clave al agente:
Enter passphrase for /home/jimjamz/.ssh/myKey:
Identity added: /home/jimjamz/.ssh/myKey (/home/jimjamz/.ssh/myKey)
Luego puedo conectarme a mi servidor remoto sin tener que especificar mi clave una vez más.
Por conveniencia, quiero agregar lo anterior a un script que inicia el agente y agrega la clave:
#!/bin/bash
eval `ssh-agent -s`
ssh-add /home/jimjamz/.ssh/myKey
Cuando ejecuto el script, puedo ver que el proceso del agente ha comenzado y se me solicita la contraseña de mi clave privada. Ingreso esto correctamente y la clave se agrega al agente.
Sin embargo, cuando intento acceder por ssh a mi servidor remoto, veo lo siguiente:
Permission denied (publickey).
El problema parece estar en las llamadas ssh-add
dentro de mi script bash. Si llamo manualmente ssh-add
fuera del script y luego intento conectarme por ssh a mi servidor remoto, puedo conectarme.
¿Por qué no reconoce que la clave ya está agregada si ssh-add
se llama dentro de un script bash?
Si ejecuto el script bash en una de mis otras máquinas (donde ssh-agent ya está cargado de forma predeterminada), la clave que se agrega dentro del script se puede usar con éxito para enviar ssh a un servidor remoto. Simplemente parece no funcionar en dispositivos donde ssh-agent no se ejecuta automáticamente de forma predeterminada.