Créer une clé publique SSH à partir de la clé privée?


215

Supposons que j'ai une clé SSH, mais que j'ai supprimé la partie clé publique. J'ai la partie clé privée. Est-il possible de régénérer la partie de clé publique?

Réponses:


253

Utilisez l'option -y pour ssh-keygen:

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

De l'homme ssh-keygen

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.

Spécifiez la clé privée avec l'option -f, le vôtre peut être dsa au lieu de rsa. Le nom de votre clé privée contient probablement ce que vous avez utilisé. La clé publique nouvellement générée doit être identique à celle que vous avez générée auparavant.


7
Pourquoi le "-t dsa"? Mayge la clé de l'OP est RSA? Je me débarrasserais de -t et utiliserais plutôt -f.
— InnaM

1
Bon point, mis à jour en conséquence
— Kyle Brandt

ouais le mien était à l'origine RSA.
— Rory

1
Sur Mac OSX 10.9.3 Mavericks, le message «Load Failed» (Chargement échoué) s'affiche après l'exécution de la commande. Comment résoudre ce problème?
— Hyperfocus

Je pense que vous pourriez aller plus loin avec le paramètre -N dans le cas où la clé privée est protégée par mot de passe:ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub
— ken

6

La solution est spécifiquement pour les utilisateurs de Windows

Outil utilisé:

  • Puttygen (Générateur de clé PuTTY)
  • WinSCP

Étapes à suivre:

  1. Ouvrez le générateur de clés PuTTY.
  2. Chargez votre clé privée ( *.ppkfichier).
  3. Copiez vos données de clé publique à partir de la section "Clé publique à coller dans le fichier OpenSSH allowed_keys" du générateur de clé PuTTY et collez les données de clé dans le fichier "registered_keys" (à l'aide du bloc-notes) si vous souhaitez les utiliser.

Instantané montrant des portions de Puttygen sur lesquelles se concentrer:

Instantané montrant des portions de Puttygen sur lesquelles se concentrer



Puttygen peut également «importer» OpenSSH (vraiment OpenSSL-Legacy) et les clés privées au format SSHCOM. Et bien que créé sous Windows, il a également été porté sur Unix, et la version Unix de puttygenest un programme en ligne de commande (et non une interface graphique); voir par exemple linux.die.net/man/1/puttygen
— dave_thompson_085
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.