Une clé privée SSH telle que générée par ssh-keygen
contient une partie de clé publique. Comment puis-je récupérer cette clé publique à partir de la clé privée? J'ai perdu ma clé publique et je dois mettre le contenu de cette clé publique dans le fichier authorized_keys
server et je ne souhaite pas créer de nouvelle paire de clés.
Autrement dit: comment créer le fichier id_rsa.pub
à partir d'un fichier id_rsa
?
J'ai trouvé la réponse sur Server Fault: créer une clé publique SSH à partir de la clé privée?
L'option -y
renvoie la clé publique:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
En remarque, le commentaire de la clé publique est perdu. J'ai eu un site qui nécessitait le commentaire (Launchpad?), Vous devez donc éditer ~/.ssh/id_rsa.pub
et ajouter un commentaire à la première ligne avec un espace entre le commentaire et les données clés. Un exemple de clé publique est tronqué ci-dessous.
ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu
Pour les clés ajoutées à l'agent SSH (programme exécuté en arrière-plan et évitant de ressaisir la phrase secrète du fichier de clés encore et encore), vous pouvez utiliser la commande ssh-add -L
pour répertorier les clés publiques des clés ajoutées. à l'agent (via ssh-add -l
). Ceci est utile lorsque la clé SSH est stockée sur une carte à puce (et que l'accès au fichier de clé privée n'est pas possible).
Il s'agit d'une solution spécialement conçue pour les utilisateurs utilisant Windows vers SSH dans leurs ordinateurs distants, y compris les images en nuage sur Amazon AWS et GCE.
J'ai récemment utilisé cette solution pour vous connecter à distance à de nouvelles images VM déployées sur GCE.
Générez une clé/paire ou utilisez une clé privée existante:
Si vous avez une clé privée:
Ouvrez puttygen, appuyez sur le bouton de chargement et sélectionnez votre fichier de clé privée (* .pem).
Si vous n'avez pas de clé privée:
Créez un nouveau fichier 'allowed_keys' (avec le Bloc-notes):
Copiez vos données de clé publique à partir de la section "Clé publique pour le collage dans le fichier OpenSSH allowed_keys" du générateur de clé PuTTY, puis collez les données de clé dans le fichier "authorised_keys".
Assurez-vous qu'il n'y a qu'une seule ligne de texte dans ce fichier.
Téléchargez la clé sur un serveur Linux:
Téléchargez le fichier allowed_keys dans le répertoire de base de la machine distante.
Définissez les autorisations appropriées:
Créez un répertoire .ssh
(s'il n'existe pas)
Copiez le fichier authorized_keys
dans le répertoire .ssh (cela remplacera tout fichier authorized_keys
existant; prenez-en note).
Si le fichier existe, ajoutez simplement le contenu de ce fichier au fichier existant.
Exécutez des commandes pour définir des autorisations:
Sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
Maintenant, vous pourrez ssh sur une machine distante sans entrer les identifiants à chaque fois.