Por que o daemon do gnome-keyring precisa da chave pública para armazenar em cache a frase secreta?

8

Eu tenho duas máquinas Arch Linux com configuração praticamente idênticas, ambas executando /usr/bin/gnome-keyring-daemon --daemonize --login . Ambos têm a mesma chave secreta SSH, mas apenas um deles tem a chave pública. No host com a chave pública, o daemon do GNOME Keyring funciona bem - posso usar o SSH para outras máquinas sem nenhum aviso, como esperado. No host sem a chave pública, parece que o GNOME Keyring ignora que eu já inseri a frase secreta , e eu sou solicitado toda vez:

$ ls ~/.ssh/id_rsa.pub
ls: cannot access /home/user/.ssh/id_rsa.pub: No such file or directory
$ ssh some-host exit
Enter passphrase for key '/home/user/.ssh/id_rsa':
$ ssh other-host exit
Enter passphrase for key '/home/user/.ssh/id_rsa':

Ele também não lista a identidade , mesmo depois de inserir a frase secreta:

$ ssh-add -l
The agent has no identities.

Depois de copiar a chave pública em um palpite, não sou mais solicitada uma frase secreta. Depois de remover a chave pública novamente, o sintoma está de volta. Existe uma razão para este comportamento, ou é simplesmente um bug?

    
por l0b0 29.05.2015 / 19:54

1 resposta

4

Na documentação do SSH Agent do do Keyring do Keyring ;

The SSH agent automatically loads files in ~/.ssh which have corresponding *.pub paired files. Additional SSH keys can be manually loaded and managed via the ssh-add command.

Assim, o Chaveiro do GNOME carregará id_rsa apenas se existir um id_rsa.pub correspondente.

Você pode gerar um com ssh-keygen do arquivo de chave privada

ssh-keygen -y -f id_rsa  > id_rsa.pub

Se você não quiser que o Chaveiro do GNOME carregue id_rsa automaticamente, você deve remover id_rsa.pub

Não consigo encontrar razões técnicas para o motivo de a convenção ter sido escolhida, mas não é um bug.

    
por 18.07.2016 / 22:34