Comment vérifier / vérifier / tester / valider ma phrase secrète SSH?

297

Je pense que j'ai oublié la phrase secrète de ma clé SSH, mais j'ai une idée de ce que cela pourrait être. Comment vérifier si j'ai raison?

joachim
la source
5
C'est un passphrase, pas de mot de passe;)
Timo

Réponses:

123

Vous pouvez vérifier votre phrase secrète de clé SSH en essayant de la charger dans votre agent SSH. Avec OpenSSH, cela se fait via ssh-add.

Une fois que vous avez terminé, n'oubliez pas de décharger votre phrase secrète SSH du terminal en exécutant ssh-add -d.

Ignacio Vazquez-Abrams
la source
13
Une fois la vérification terminée, déchargez votre phrase secrète de clé SSH de votre agent SSH avecssh-add -d
Kache
1
ssh-add nécessite des droits d'administrateur sur la machine, je pense. Je reçois une erreur: "Impossible d'ouvrir une connexion avec votre agent d'authentification."
IgorGanapolsky
@IgorGanapolsky: Non, cela nécessite un agent d'authentification en cours d'exécution. Modifiez vos scripts ou options de démarrage pour en afficher un.
Ignacio Vazquez-Abrams du
20
La réponse de Rob est la bonne réponse.
mgarciaisaia
Si vous utilisez selinux, vous pouvez également vérifier le contexte du répertoire personnel et des fichiers .ssh! J'ai eu la chance de pouvoir utiliser ce correctif simple: # restorecon -R -v /home/userpour vérifier si c'est le problème (bien que la commande précédente ne devrait pas poser de problème), vous pouvez utiliser $ ls -lZR <home_dir>pour examiner le contexte. Si vous ne voyez pas user_home_tsur le répertoire personnel et ssh_home_tsur le .sshrépertoire et le authorized_keysfichier, utilisez-les restoreconpour les corriger.
fbicknel
523

ssh-keygen -y

ssh-keygen -y vous demandera le mot de passe (s'il y en a un).

    Si vous saisissez la phrase de passe correcte , elle vous montrera la clé publique associée.
    Si vous entrez une mauvaise phrase secrète, elle s'affichera load failed.
    Si la clé n'a pas de phrase secrète, elle ne vous demandera pas de phrase secrète et vous montrera immédiatement la clé publique associée.

par exemple,

Créez une nouvelle paire de clés publique / privée, avec ou sans phrase secrète:

$ ssh-keygen -f /tmp/my_key
...

Maintenant, voyez si vous pouvez accéder à la paire de clés:

$ ssh-keygen -y -f /tmp/my_key


Voici un exemple étendu, montrant la sortie.

Créez une nouvelle paire de clés publique / privée, avec ou sans phrase secrète:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Essayez d'accéder à la paire de clés en saisissant la phrase de passe correcte. Notez que la clé publique sera affichée et l'état de sortie ( $?) sera 0pour indiquer le succès:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Essayez d'accéder à la paire de clés en saisissant une phrase de passe incorrecte. Notez que le message d'erreur "Échec du chargement" sera affiché (le message peut différer selon le système d'exploitation) et l'état de sortie ( $?) sera 1pour indiquer une erreur:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Essayez d'accéder à une paire de clés sans phrase secrète. Notez qu'il n'y a pas d'invite pour la phrase de passe, la clé publique sera affichée et l'état de sortie ( $?) sera 0pour indiquer le succès:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0
Rob Bednark
la source
2
S'il n'y a pas de mot de passe, il imprimera simplement la clé publique associée.
Kyrremann
1
Merci @Kyrremann! J'ai maintenant mis à jour la réponse pour refléter cela.
Rob Bednark
ssh-keygen -ydemande le fichier clé et propose une valeur par défaut lorsque vous cliquez sur Retour comme on pourrait s'y attendre.
Timo
J'ai utilisé ssh-keygen -ypour vérifier la phrase secrète de ma clé ssh. Cela a bien fonctionné, sauf que mon Ubuntu devient incroyablement lent. La plupart des programmes pouvaient démarrer en une minute ou plus alors que l'utilisation du processeur était de 100%. Après avoir redémarré mon ordinateur portable, je pouvais à peine me connecter car cela prenait quelques minutes pour voir mon bureau. Enfin, j'ai trouvé ce problème sur Ask Ubuntu . J'ai dû commencer par gnome-keyring-daemonrésoudre le problème.
Adam Fónagy
2

En étendant la solution de @ RobBednark à un scénario Windows + PuTTY spécifique, vous pouvez le faire:

  1. Générez une paire de clés SSH avec PuTTYgen (après la génération manuelle de votre clé SSH dans Windows ), en l'enregistrant dans un fichier PPK;

  2. Avec le menu contextuel de l'Explorateur Windows, choisissez Modifier avec PuTTYgen. Il vous demandera un mot de passe.

Si vous tapez le mauvais mot de passe, il vous demandera simplement à nouveau.

Notez que si vous voulez taper, utilisez la commande suivante sur un dossier qui contient le fichier PPK: puttygen private-key.ppk -y.

kokbira
la source
0

Utilisez "ssh-keygen -p". Vous pouvez ajouter "-f"

Il vous demandera l'ancien mot de passe. Si le mot de passe est correct, il vous sera demandé de saisir un nouveau mot de passe. Si l'ancien mot de passe est incorrect, vous obtiendrez "Impossible de charger la clé <...>".

Alex F
la source
-1

Si votre phrase secrète est de déverrouiller votre clé SSH et que vous ne l'avez pas ssh-agent, mais que sshd (le démon SSH) est installé sur votre machine, faites:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

~/.ssh/id_rsa.pubest la clé publique et ~/.ssh/id_rsala clé privée.

Alexx Roche
la source
1
Il ne demande pas de phrase de passe pour cela
Imme22009
Ça le fait pour moi, pour débloquer l'id_rsa privé à ssh localhost
Alexx Roche
Je reçois une erreur: "ssh: connectez-vous au port local de l'hôte 22: numéro de fichier
incorrect