Quelle pourrait être la raison, que les clés privées ne sont pas déverrouillées?

13

Depuis que j'ai mis à jour vers Ubuntu 17.10 il y a quelque temps, mes clés privées - que j'utilise par exemple pour accéder à mon serveur via ssh - ne sont plus déverrouillées par programme après la connexion.

entrez la description de l'image ici

D'après ce que je comprends, généralement, ils seahorse clientdevraient s'en occuper en vous demandant si vous souhaitez ou non enregistrer le mot de passe de la clé lors de leur première saisie.

Ma première supposition était que cela seahorse-daemonne fonctionnait pas pour une raison quelconque, mais c'est:

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

Ma deuxième supposition était que, pour une raison quelconque, je dois supprimer tous les mots de passe associés stockés dans Seahorse sous »Mots de passe -> connexion«: entrez la description de l'image ici

J'espérais forcer le client à me demander à nouveau, puis à les stocker à nouveau. Mais cela n'a pas aidé non plus. Le client ne surgit pas pour me demander ...

Ensuite, j'ai trouvé cette question, qui pourrait être liée, mais ne m'a pas aidé: déverrouillez toutes les clés privées sur Ubuntu, en entrant le mot de passe une seule fois à la connexion

Comme la gestion des autres mots de passe fonctionne comme prévu (par exemple les mots de passe pour nautilus, Chromium, Nextcloud etc.), je suppose que le problème doit faire quelque chose avec ssh-agent...

Quelqu'un peut-il m'indiquer dans la bonne direction, comment résoudre ce problème? Est-ce que quelque chose a changé dans la façon dont GNOME gère les mots de passe? Peut-être qu'un nouveau programme sophistiqué n'a pas été installé pendant le processus de mise à niveau?

MISE À JOUR Lorsque j'ajoute à nouveau la clé privée à l'agent d'authentification avec:

ssh-add ~/.ssh/id_rsa

et essayez de vous connecter, on me demandera de déverrouiller la clé une seule fois, après quoi la clé sera déverrouillée par programme. Mais cela ne fonctionne que jusqu'au prochain redémarrage. Après un nouveau départ, je dois rajouter la clé ...

user5950
la source
J'ai aussi soudainement commencé à me demander un mot de passe pour déverrouiller les clés ssh lors de l'utilisation d'Ubuntu 17.10. La réponse acceptée ne m'a pas aidé (ne fonctionne que jusqu'au redémarrage). Voici une question apparemment en double.
Alexey
Seahorse crypte ses données avec, vous l'aurez deviné, votre mot de passe (généralement). Connexions sans mot de passe, comme ssh avec une clé, lecteur d'empreintes digitales, ... laissez le décryptage jusqu'à ce que vous en ayez besoin, puis vous êtes invité. Avez-vous changé les connexions ssh du mot de passe à la clé au début du problème?
ubfan1

Réponses:

7

Oui, ssh-agent est la réponse. Pour enregistrer la phrase secrète, il vous suffit de:

ssh-add ~/.ssh/id_rsa

Saisissez ensuite votre mot de passe et reconnectez-vous.

ciel sombre
la source
Cela n'aide que jusqu'au prochain redémarrage.
Alexey
@Alexey Oui, je peux confirmer que cela ne fonctionne que jusqu'au prochain redémarrage. Je n'ai pas encore trouvé de solution.
user5950
ssh-agent s'exécute pendant une session de connexion et se termine lorsque vous y mettez fin pour votre propre sécurité. S'il était persistant lors des redémarrages et que le mot de passe de votre compte est compromis, un attaquant a soudainement accès à votre identité RSA et donc à toutes les machines auxquelles vous pouvez accéder. Ce serait un trou de sécurité désagréable. Il existe cependant certaines solutions de contournement, au prix de rendre votre compte moins sécurisé. Voir unix.stackexchange.com/questions/90853/…
darksky
6

L'ajout de l'agent de clé SSH (porte-clés GNOME: agent SSH) aux applications de démarrage a résolu le problème pour moi:

entrez la description de l'image ici

Alexey
la source
3

Première option

Démarrez l'agent ssh:

ssh-agent

Ajoutez la clé ssh:

ssh-add ~/.ssh/id_rsa

Pour le faire persister après le redémarrage, lancez automatiquement ssh-agent, ajoutez la ligne suivante à votre .bash_profile:

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

Deuxième option

Ajoutez ceci à votre .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

Cela ne devrait vous demander un mot de passe que la première fois que vous vous connectez après chaque redémarrage. Il continuera à réutiliser le même agent ssh tant qu'il restera en cours d'exécution.

An0n
la source
Merci, cette solution de contournement semble fonctionner, mais je m'égare, que s'est-il passé pour que cela cesse de fonctionner en premier lieu? Cela a fonctionné pendant la dernière décennie ... Je voudrais trouver la cause avant de partir pour une solution de contournement ...
user5950