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 ...


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.


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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.