Por que o SSH está localizando chaves remotas para outras contas?

1

Este é um problema estranho que estou tendo com o SSH do meu Macbook Pro para um servidor Linux (Ubuntu 11.10). Eu tenho uma configuração de chave DSA no servidor Linux remoto no meu diretório home como este:

/home/me/.ssh/authorzied_keys

Eu também tenho a mesma configuração de chave DSA para algumas outras contas na máquina chamada "foo" e "bar". Eu posso entrar em todas as contas bem sem qualquer senha. Portanto, as chaves DSA estão todas configuradas corretamente.

O comportamento estranho que estou vendo é ao depurar a conexão SSH. Durante a conexão, a depuração SSH está transmitindo isto:

debug2: key: /Users/me/.ssh/id_dsa (0x7f91a1424220)
debug2: key: /home/foo/.ssh/id_dsa (0x7f91a1425620)
debug2: key: /home/bar/.ssh/id_rsa (0x7f91a1425c60)
debug2: key: /Users/me/.ssh/id_rsa (0x0)
  • Isso é estranho por muitas razões, mas essencialmente, por que o SSH está listando as chaves no servidor (/home/foo/.ssh/id_dsa e /home/bar/.ssh/id_rsa)?
  • Esses arquivos nem existem no servidor, então por que eles estão listados?
  • Não estou fazendo login nas contas "foo" ou "bar", então por que o SSH está listando essas contas?
  • No meu Macbook Pro, eu só tenho uma chave DSA, mas o SSH está listando uma chave RSA, o que é isso tudo?
  • Outro usuário no servidor não recebe nenhuma dessas mensagens quando elas fazem login e elas têm exatamente a mesma configuração para sua chave DSA e exatamente a mesma configuração do Macbook Pro que a minha?

Alguém sabe quais são essas mensagens e por que o SSH as está transmitindo?

    
por Brian Pontarelli 11.11.2011 / 16:39

2 respostas

1

Daniel está correto, o que seu agente ssh carregou?

ssh-add -l

Você pode limpar tudo do seu agente ssh com

ssh-add -D

Observe também que o agente ssh no Mac OS X (10.5+) geralmente não está em execução até ser necessário. Portanto, SSH_AGENT_PID é indefinido e SSH_AUTH_SOCK é configurado para que o launchd crie apenas o processo ssh-agent quando o soquete for utilizado pela primeira vez .

    
por 14.11.2011 / 00:26
3

Veja o código-fonte do OpenSSH, static void pubkey_prepare(Authctxt *authctxt) in sshconnect2.c :

Ele reúne (e depois lista) chaves das seguintes fontes, nessa ordem:

/*
 * try keys in the following order:
 *  1. agent keys that are found in the config file
 *  2. other agent keys
 *  3. keys that are only listed in the config file
 */

arquivo de configuração e options.identity_files no código referem-se à diretiva IdentityFile em ssh_config cujo tipo de dados está definido em readconf.h .

A partir da ordem de saída, com as chaves desconhecidas entre id_dsa e id_rsa , verifique seu agente SSH.

    
por 12.11.2011 / 08:33