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?

Rory
la source

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.

Kyle Brandt
la source
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

devprashant
la source
Lectures
devprashant
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