O ssh -A não habilita corretamente o encaminhamento da conexão do agente de autenticação

22

Eu amo ssh -A, o que me permite usar minha chave ssh local ao estabelecer uma conexão a partir de um servidor remoto. Por exemplo, eu ssh -A host1.example.come então de lá eu posso ssh host2.example.com(ou uso o git) e ele usa minha chave ssh da máquina original, que nesse caso deve ser o meu mac. Embora isso sempre tenha funcionado para mim no Debian / Ubuntu, não funciona no meu novo mac (Lion).

O que estou perdendo aqui? Como eu configuro o ssh para funcionar corretamente com -A? Preciso de um ssh que não seja o padrão do MacOS?

rfay
fonte

Respostas:

33

Na verdade, a resposta muito simples é que você precisa executar

ssh-add

e então tudo funciona.

Basicamente, o macOS já possui o ssh-agent configurado para você, mas após cada reinicialização, você precisa adicionar suas chaves. O ssh-add fornece ao ssh-agent acesso às suas chaves para o ciclo de inicialização atual. Você precisará digitar a senha da sua chave privada se tiver criado uma.

rfay
fonte
Isso resolveu o meu último problema de encaminhamento ssh após a atualização para MacOS (após 5 anos, ainda uma resposta útil, graças @rfay)
23tux
Isso funciona, mas alguma explicação do porquê seria útil / ajudaria as pessoas a se lembrarem desse comando.
Adam Parkin
2
O @AdamParkin adicionou outro parágrafo explicando.
Rfay
1

O conceito por trás ssh -Asão agentes ssh. Eles são executados em segundo plano e, através do uso de variáveis ​​de ambiente, o agente pode ser localizado e usado automaticamente para autenticação ao efetuar login em outras máquinas usando ssh. Dê uma olhada na página de manual do ssh-agent para mais detalhes.

Com o Mac OS X, o agente ssh deve ser iniciado sob demanda.

Para mais informações, veja:

Florian Feldhaus
fonte
1

No OS X 10.8, você precisa fazer isso uma vez:

sudo touch /var/db/useLS

E adicione isso como parte do seu ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Nota: esta receita faz parte dos meus scripts beduínos .

sorin
fonte
Hum, apenas tentei isso; o agente é iniciado, mas você ainda precisa adicionar ssh para fazer com que tudo funcione. Então ssh-add sozinho ainda é a resposta, pelo que entendi. Acho que devo adicioná-lo ao meu .bash_profile.
rfay
lol, e se minha chave privada precisar de uma senha?
Jeffrey04