`Permissão negada (chave pública)` quando a chave é adicionada ao agente SSH via script Bash

`Permissão negada (chave pública)` quando a chave é adicionada ao agente SSH via script Bash

Tanto no meu dispositivo móvel quanto no Raspberry Pi (coincidentemente nas CPUs AArch e ARM, respectivamente), ssh-agentnã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-adddo meu script bash. Se eu ligar manualmente ssh-addfora 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-addfor 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.

informação relacionada