Problema com o ssh-agent e / ou o keychain do Mac no Mac

3

tl; dr: Eu tenho identidades no agente ssh. Todos aqueles, exceto um, são usados; um é adicionado ao agente e chaveiro quando eu o uso, mas então eu sou solicitado pela frase-senha novamente e novamente, como se a chave não estivesse no agente (e se não fosse, como se o agente não pudesse obter a senha do chaveiro).

Detalhes:

Eu tenho um monte de chaves SSH (RSA, protocolo 2) para as quais eu uso o agente e armazeno as senhas no chaveiro.

Para uma (e apenas uma) dessas chaves, e apenas recentemente, o SSH começou a ignorar a identidade no agente. Isso é:

  • eu me conecto usando a chave ( ssh -i keyfile user@host , IdentitiesOnly é verdadeiro para Host * )
  • OS X pede a senha; Eu defino a caixa de seleção Salvar em chaves.
  • a identidade é adicionada implicitamente ao agente, a entrada de chave é adicionada
  • fecho a conexão
  • eu reconecto
  • Mais uma vez, sou perguntado pela senha, como se o agente e / ou entradas de chave não existissem

Eu verifiquei que:  - A entrada keychain está definida para "permitir sempre" para ssh, ssh-add e ssh-agent.  - O arquivo de chave tem permissões corretas definidas.  - A identidade é carregada no agente.  - O login funciona com esse ID, desde que eu digite a senha todas as vezes.

O que tentei:

  • Excluindo a entrada de chave inteira, em seguida, iniciou o ssh novamente. Fui avisado da senha, digitei a entrada no chaveiro e a identidade do agente foi adicionada; conexão funcionou, da próxima vez foi perguntado novamente.
  • Renomeando o arquivo de chave em si. A nova entrada de chave é criada, a conexão funciona, mas na próxima conexão eu recebo a senha novamente.
  • Eu corri ssh-add -D seguido por ssh-add -k . Verifiquei que a chave incorreta está entre as identidades adicionadas; Assim, em princípio, a comunicação entre o agente e o chaveiro parece funcionar. Ainda pergunta de novo.

Isso não acontece com nenhuma das minhas outras chaves e a chave em si funciona para o SSH. Ele também fica realmente irritante, já que uso senhas bastante strongs para chaves.

    
por Bernd Haug 13.07.2011 / 09:26

3 respostas

0

Acontece que o problema é que eu tinha muitos IDs no meu agente. Normalmente, o ssh irá ignorar a opção -i , uma vez que tenha identidades no agente e apenas use as identidades no agente, por sua vez. Se você tiver mais do que, digamos, 5, os servidores rejeitarão todos eles e depois voltarão a usar senhas, pois houve muitas tentativas malsucedidas.

A configuração de identitiesonly no host * torna ssh a opção -i (ou identityfile no .ssh/config novamente, mas ainda procurará no agente se a identidade especificada já estiver desbloqueada, para que Corrigi esta questão de qualquer ângulo.

    
por 09.11.2011 / 21:13
2

Você não deve usar o argumento '-i keyfile' quando a identidade estiver presente no seu agente.

Tente isto:

ssh-add keyfile
ssh -v user@host

(O v ajudará você a depurar)

    
por 07.11.2011 / 14:42
0

Siga o Blog de Dave Dribin ( ssh-agent no Mac OS X 10.5 (Leopard)

Você deve executar o comando follow:

ssh-add -k /path/to/your/private/key

Depois disso, verifique suas configurações por meio de:

sh-add -L
    
por 16.12.2014 / 09:11