Qual poderia ser o motivo, porque as chaves privadas não são desbloqueadas?

13

Desde que eu atualizei para o Ubuntu 17.10 há um tempo atrás, minhas chaves privadas - as quais eu uso, por exemplo, para acessar meu servidor via ssh - não são desbloqueadas programaticamente após o login.

insira a descrição da imagem aqui

Meu entendimento é que, geralmente, isso seahorse clientdeve ser resolvido, perguntando se você deseja ou não armazenar a senha da chave ao digitá-la pela primeira vez.

Meu primeiro palpite foi que isso seahorse-daemonnão estava sendo executado por algum motivo, mas é:

user@Zeus:~$ ps aux | grep seahorse
user    19170  0.0  0.1 432636 26564 ?        Ss   00:07   0:00 seahorse-daemon

Meu segundo palpite foi que, por algum motivo, tenho que excluir todas as senhas relacionadas armazenadas no cavalo-marinho em »Senhas-> login«: insira a descrição da imagem aqui

Eu esperava forçar o cliente a me perguntar novamente e depois armazená-lo novamente. Mas isso também não ajudou. O cliente não aparece para me perguntar ...

Então encontrei esta pergunta, que poderia estar relacionada, mas não me ajudou: desbloqueie todas as chaves privadas no Ubuntu, digitando a senha apenas uma vez no login

Como o gerenciamento de outras senhas funciona conforme o esperado (por exemplo, senhas para nautilus, Chromium, Nextcloud etc.), presumo que o problema tenha algo a ver com ssh-agent...

Alguém pode me indicar as direções certas, como resolver este problema? Alguma coisa mudou na maneira como o GNOME lida com senhas? Talvez algum novo programa sofisticado tenha falhado em ser instalado durante o processo de atualização?

ATUALIZAÇÃO Quando adiciono a chave privada ao agente de autenticação novamente com:

ssh-add ~/.ssh/id_rsa

e tentar fazer login, será solicitado que você desbloqueie a chave apenas uma vez, depois que a chave for desbloqueada programaticamente. Mas isso funciona apenas até a próxima reinicialização. Depois de um novo começo, tenho que adicionar a chave novamente ...

user5950
fonte
De repente, também comecei a ser solicitada uma senha para desbloquear chaves ssh enquanto usava o Ubuntu 17.10. A resposta aceita não me ajudou (funciona apenas até a reinicialização). Aqui está uma pergunta aparentemente duplicada.
28418 Alexey
Seahorse criptografa seus dados com, você adivinhou, sua senha (normalmente). Logins sem senha, como ssh com uma chave, leitor de impressões digitais, ... deixe a descriptografia até que seja necessário, e você será solicitado. Você mudou os logins ssh da senha para a chave quando o problema começou?
precisa saber é o seguinte

Respostas:

7

Sim, ssh-agent é a resposta. Para salvar a senha, tudo que você precisa fazer é:

ssh-add ~/.ssh/id_rsa

Em seguida, digite sua senha e faça login novamente.

céu escuro
fonte
Isso ajuda apenas até a próxima reinicialização.
Alexey #
@ Alexey Sim, posso confirmar que funciona apenas até a próxima reinicialização. Ainda não encontrou uma solução.
user5950
O ssh-agent é executado durante uma sessão de login e termina quando você a encerra para sua própria segurança. Se persistir durante as reinicializações e a senha da sua conta for comprometida, de repente um invasor terá acesso à sua identidade RSA e, portanto, a todas as máquinas que você pode acessar. Isso seria uma brecha de segurança desagradável. No entanto, existem algumas soluções alternativas, ao custo de tornar sua conta menos segura. Veja unix.stackexchange.com/questions/90853/…
darksky
6

Adicionar o SSH Key Agent (chave do GNOME: SSH Agent) aos aplicativos de inicialização resolveu o problema para mim:

insira a descrição da imagem aqui

Alexey
fonte
3

Primeira opção

Inicie o agente ssh:

ssh-agent

Adicione a chave ssh:

ssh-add ~/.ssh/id_rsa

Para persistir após a reinicialização, inicie automaticamente o ssh-agent, adicione a seguinte linha ao seu .bash_profile:

if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval `ssh-agent -s`
  ssh-add
fi

Segunda opçao

Adicione isso ao seu .bashrc ou .zshrc:

if [ ! -S ~/.ssh/ssh_auth_sock ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock
fi
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock
ssh-add -l > /dev/null || ssh-add

Isso deve solicitar apenas uma senha na primeira vez que você fizer login após cada reinicialização. Ele continuará reutilizando o mesmo agente ssh enquanto permanecer em execução.

An0n
fonte
Obrigado, esta solução parece que funciona, mas estou vagando, o que aconteceu para fazê-la parar de funcionar? É usado para o trabalho na última década ... Eu gostaria de encontrar a causa antes de eu ir para uma solução alternativa ...
user5950