Não é possível remover as chaves do ssh-agent. Mesmo a reinicialização não ajuda

18

Há pouco tempo, notei que havia três chaves no meu ssh-agent que não consegui excluir. ssh-add -lmostrou três chaves; Eu corri ssh-add -De me disseram "Todas as identidades removidas."; mas então um imediato ssh-add -lmostrou as mesmas três chaves.

Se eu sair e depois voltar, as chaves ainda estarão lá. Se eu reiniciar a máquina, as chaves ainda estarão lá. Se eu excluir o diretório do chaveiro /tmp, não consigo mais me conectar ssh-agent, mas ao fazer o logoff e o logon novamente, as chaves estão de volta. Eles são invulneráveis.

As chaves são minhas, não de mais ninguém, tanto quanto eu posso dizer. Posso acessar meus serviços locais habituais com eles. Mas quando adiciono uma das chaves novamente com ssh-add, fornecendo o caminho para um arquivo de chave privada, a nova chave tem uma aparência diferente na saída de ssh-add -l:

2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f /home/jruser/.ssh/jruser-keyname-20110418 (RSA)

vs. o original:

2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)

Existe alguma maneira de explicar sensatamente esse comportamento? Eu acho que existem realmente duas perguntas:

  1. Como as chaves conseguiram ser mantidas mesmo durante as reinicializações? Meu conhecimento básico sshsugere que as chaves sempre precisam ser adicionadas manualmente.

  2. Por que eu ssh-agent -Dminto para remover identidades?

Sean
fonte
Também há um bug do Fedora / Red Hat: bugzilla.redhat.com/show_bug.cgi?id=1205546 #
Spoovy

Respostas:

11

Parece que pode ser um bug. Estou tendo um comportamento semelhante no Ubuntu 10.10. Uma pesquisa no google encontrou um relatório de bug para o Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477

Para remover as chaves extras que eu mostrava, acabei de removê-las do diretório ~ / .ssh.

mp3foley
fonte
Sim! Isso funciona para mim. Obrigado! Eu uso o Debian Wheezy beta 4.
Tarrasch
3
Finalmente cedeu e investigou. O culpado é o gnome-keyring-daemon, que a) carrega automaticamente todas as chaves em ~ / .ssh eb) se recusa a abandoná-las. A solução é impedir que o gnome-keyring-manager seja iniciado, o que foi estranhamente difícil por finalmente ser alcançado com a remoção da permissão de execução do arquivo de programa.
25413 Sean
Existe uma solução para isso que não envolva gnome-keyring-manager? ou seja, consertar o gnome-keyring-manager para excluir as chaves solicitadas?
Phil
11
É 2018 e isso ainda é relevante. Tem que mover as chaves do ~ / .ssh
Carson Ip
11
Uau. Remova as chaves de ~ / .ssh e coloque em outro diretório como o @CarsonIp mencionado e, em seguida, use um comando ssh-agent no bashrc para carregar manualmente as chaves ssh extras do outro diretório. PIMA!
Ligemer 19/02
3

Suas chaves são armazenadas como arquivos no diretório oculto: /home/jruser/.ssh/ é assim que elas persistem após a reinicialização. Meu palpite é que o ssh-add -D está excluindo-os da memória, mas quando você reinicia, eles são lidos no diretório .ssh e, portanto, você os possui novamente.

pbsmind
fonte
4
Mas ssh-add -DNÃO os está excluindo da memória. Não tem nenhum efeito.
Sean