Double ssh pede a senha para desbloquear uma chave RSA, mas não deve

2

Eu tenho duas máquinas, M1 e M2, ambas rodando OS X, e uma terceira máquina, L, rodando Linux. M1 e M2 têm chaves RSA desbloqueadas no Keychain, para que eu possa:

  • ssh de M1 para M2 sem ser solicitada uma senha ou a frase secreta da chave
  • ssh de M2 para L sem ser solicitada uma senha ou a frase secreta da chave

No entanto, quando eu ssh de M1 para M2, e depois para L (enquanto ainda fisicamente em M1), ele me pede a senha da chave! Eu tentei desbloquear manualmente o login.keychain usando o comando security , mas parece não ter efeito.

O que está errado? Como posso dobrar o ssh sem digitar senhas?

    
por Jesse Beder 19.12.2010 / 09:01

2 respostas

3

O keychain está funcionando exatamente como deveria, o que o -A faz é encaminhar as chaves carregadas do M1 para o M2 e para o L. Eu suspeito que quando você faz o login no M2, ele não está inicializando suas chaves / iniciando um full sessão porque o processo de login gráfico não ocorreu juntamente com todos os seus efeitos colaterais.

Se você quiser encaminhar seu agente para qualquer lugar que você ssh, você deve criar o arquivo ~ / .ssh / config e adicionar uma entrada para o * host com o ForwardAgent definido como yes:

Host *
    ForwardAgent yes

Além disso, você pode ser mais específico sobre qual host deseja encaminhar seu agente substituindo * por um nome de host.

    
por 19.12.2010 / 22:46
2

Você está tentando fazer login no L a partir do M2. Isso significa que o M2 deve ter suas credenciais (chave e senha). Mas suas credenciais estão na M1.

Você pode copiar suas credenciais para o M2, mas então você deve interagir com o keychain no M2. Alternativamente, você pode dizer ao M2 para entrar em contato com o chaveiro no M1, em vez do chaveiro no M2. Este é, de fato, o método usual, e algumas instalações têm esse trabalho fora da caixa, mas aparentemente não são suas.

Ativar encaminhamento de agentes de M1 para M2. Na linha de comando, com o OpenSSH, passe a opção -A (ou seja, execute ssh -A M2 no M1). Você também pode colocar a diretiva ForwardAgent em ~/.ssh/config . Talvez haja também uma maneira de fazer isso no OSX.

    
por 19.12.2010 / 20:08