![`Permissão negada (chave pública)` quando a chave é adicionada ao agente SSH via script Bash](https://rvso.com/image/1601564/%60Permiss%C3%A3o%20negada%20(chave%20p%C3%BAblica)%60%20quando%20a%20chave%20%C3%A9%20adicionada%20ao%20agente%20SSH%20via%20script%20Bash.png)
Tanto no meu dispositivo móvel quanto no Raspberry Pi (coincidentemente nas CPUs AArch e ARM, respectivamente), ssh-agent
não é carregado por padrão.
Primeiro tenho que iniciar o ssh-agent
:
eval `ssh-agent -s`
Em seguida, prossigo para adicionar a chave ao agente:
ssh-add /home/jimjamz/.ssh/myKey
Me pede uma senha e a digito. A chave é então adicionada ao agente:
Enter passphrase for /home/jimjamz/.ssh/myKey:
Identity added: /home/jimjamz/.ssh/myKey (/home/jimjamz/.ssh/myKey)
Posso então conectar-me ao meu servidor remoto sem precisar especificar minha chave novamente.
Por uma questão de conveniência, quero adicionar o acima a um script que inicia o agente e adiciona a chave:
#!/bin/bash
eval `ssh-agent -s`
ssh-add /home/jimjamz/.ssh/myKey
Quando executo o script, vejo que o processo do agente foi iniciado e sou solicitada a senha da minha chave privada. Eu insiro isso corretamente e a chave é adicionada ao agente.
No entanto, quando tento fazer ssh no meu servidor remoto, vejo o seguinte:
Permission denied (publickey).
O problema parece estar na chamada ssh-add
do meu script bash. Se eu ligar manualmente ssh-add
fora do script e tentar fazer ssh no meu servidor remoto, posso me conectar.
Por que não reconhece que a chave já foi adicionada se ssh-add
for chamada em um script bash?
Se eu executar o script bash em uma de minhas outras máquinas (onde o ssh-agent já está carregado por padrão), a chave adicionada no script poderá ser usada com êxito para ssh em um servidor remoto. Parece que não funciona em dispositivos onde o ssh-agent não está sendo executado automaticamente por padrão.