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

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

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, então posso:

  • ssh de M1 para M2 sem ser solicitada uma senha ou senha da chave
  • ssh de M2 ​​para L sem ser solicitada uma senha ou senha da chave

No entanto, quando faço ssh de M1 para M2 e depois para L (enquanto ainda fisicamente em M1), ele me pede a senha da chave! Tentei desbloquear manualmente login.keychainusando o securitycomando, mas parece não surtir efeito.

O que está errado? Como posso duplicar o ssh sem digitar nenhuma senha?

Responder1

O chaveiro está funcionando exatamente como deveria, o que -A faz é encaminhar suas chaves carregadas de M1 a M2 e para L. Suspeito que quando você faz login no M2, ele não está inicializando suas chaves/iniciando uma sessão completa porque o o processo de login gráfico não ocorreu junto com todos os seus efeitos colaterais.

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

Host *
    ForwardAgent yes

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

Responder2

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

Você pode copiar suas credenciais para M2, mas terá que interagir com as chaves no M2. Alternativamente, você pode dizer ao M2 para entrar em contato com o chaveiro no M1 em vez do chaveiro no M2. Na verdade, esse é o método usual, e algumas instalações funcionam imediatamente, mas aparentemente não são as suas.

Habilitarencaminhamento de agentede M1 a M2. Na linha de comando, com OpenSSH, passe a -Aopção (ou seja, executar ssh -A M2em M1). Você também pode colocar a ForwardAgentdiretiva em ~/.ssh/config. Talvez haja também uma maneira GUI de fazer isso no OSX.

informação relacionada