Erro recorrente "falha admitida no agente ao assinar usando a chave" com SSH sem senha

1

Uma das máquinas na minha rede (estação de trabalho Mint 12, atualizada) entra periodicamente em um estado ruim em que todas as conexões SSH de saída retornam à autenticação de senha com o erro "agente admitiu falha ao assinar usando a chave" em vez de usando a autenticação baseada em chave que foi configurada.

Quando estiver nesse estado, ele falhará 100% do tempo para todas as conexões de saída. A autenticação baseada em chaves de entrada parece se conectar normalmente. Eu tentei excluir e regenerar o par de chaves e redistribuir a chave pública, mas o erro persistiu.

Uma reinicialização resolverá o erro temporariamente, mas voltará em alguns dias. Parece não coincidir com nenhum evento / fluxo de trabalho em particular, mas posso estar perdendo alguma coisa.

Alguém mais viu isso?

    
por cmckendry 26.05.2012 / 02:39

1 resposta

2

O "agente" aqui é ssh-agent , um programa que carrega a chave privada na memória e a mantém para conexões ssh futuras, para que você não tenha que digitar novamente a senha. Parece que em algum lugar ao longo da linha, está sendo ordenado esquecer a chave (você está suspendendo para o disco / hibernando? Isso pode fazer isso para evitar que a chave não criptografada seja gravada no disco) ou tem um bug que faz com que ele esqueça chave. De qualquer maneira, ssh-add deve permitir que você adicione a chave ao agente.

Estou bastante certo de que você receberia uma mensagem de erro diferente se ssh não pudesse falar com ssh-agent por algum motivo. Se ssh-add disser que não é possível abrir uma conexão com seu agente de autenticação, o problema real é que ele parou de ser executado ou as variáveis de ambiente que informam ssh como entrar em contato com o agente desapareceram ou que o arquivo de soquete desapareceu. Se as variáveis de ambiente $SSH_AUTH_SOCK e $SSH_AGENT_PID estiverem definidas ainda quando isso estiver acontecendo (com echo $SSH_AGENT_PID ), certifique-se de que o processo ssh-agent referenciado por $SSH_AGENT_PID ainda esteja em execução e, em caso afirmativo, que o arquivo de soquete em $SSH_AUTH_SOCK ainda está lá. Pode ser que você tenha um processo de limpeza /tmp agressivo que está removendo o soquete.

    
por 26.05.2012 / 04:06