Comment convertir des keypairs SSH générés à l’aide de PuttyGen (Windows) en paires de clés utilisées par ssh-agent et KeyChain (Linux)

J’ai généré des paires de clés en utilisant PuttyGen et je me suis connecté en utilisant Pageant , de sorte que je ne dois entrer une seule fois que ma phrase de passe lorsque mon système démarre.

Comment est-ce que j’y parviens sous Linux? J’ai entendu parler du keychain mais j’entends qu’il utilise un format de paire de clés différent – je ne veux pas changer mes clés Windows et ce serait bien si je pouvais me connecter facilement de la même manière sous Windows et Linux.

puttygen prend en charge l’exportation de votre clé privée vers un format compatible OpenSSH. Vous pouvez ensuite utiliser les outils OpenSSH pour recréer la clé publique.

  1. Ouvrir PuttyGen
  2. Cliquez sur Charger
  3. Chargez votre clé privée
  4. Allez dans Conversions->Export OpenSSH et exportez votre clé privée
  5. Copiez votre clé privée dans ~/.ssh/id_dsa (ou id_rsa ).
  6. Créez la version RFC 4716 de la clé publique à l’aide de ssh-keygen

     ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub 
  7. Convertissez la version RFC 4716 de la clé publique au format OpenSSH:

     ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub 

Voir ceci et ceci pour plus d’informations.

Si tout ce que vous avez est une clé publique d’un utilisateur au format PuTTY, vous pouvez la convertir au format standard OpenSH comme suit:

 ssh-keygen -i -f keyfile.pub > newkeyfile.pub 

Les références

Copie de l’article

Je continue à oublier ça alors je vais l’écrire ici. Non-geeks, continuez simplement à marcher.

La méthode la plus courante pour créer une clé sous Windows consiste à utiliser Putty / Puttygen. Puttygen fournit un utilitaire soigné pour convertir une clé privée Linux au format Putty. Cependant, ce qui n’est pas abordé, c’est que lorsque vous enregistrez la clé publique en utilisant puttygen, cela ne fonctionnera pas sur un serveur Linux. Windows place des données dans différents domaines et ajoute des sauts de ligne.

La solution: Lorsque vous accédez à l’écran de clé publique en créant votre paire de clés dans puttygen, copiez la clé publique et collez-la dans un fichier texte avec l’extension .pub. Vous économiserez des heures sysadmin de frustration en lisant des articles comme celui-ci.

TOUTEFOIS, sysadmins, vous obtenez invariablement le fichier de clé wonky qui ne renvoie aucun message d’erreur dans le journal d’authentification sauf, aucune clé trouvée, en essayant le mot de passe; Même si les clés de tous fonctionnent correctement, vous avez renvoyé cette clé 15 fois à l’utilisateur.

 ssh-keygen -i -f keyfile.pub > newkeyfile.pub 

Devrait convertir une clé publique puttygen existante au format OpenSSH.

Les nouvelles versions de PuTTYgen (la mienne est la version 0.64) peuvent afficher la clé publique OpenSSH à coller dans le système Linux dans le fichier .ssh/authorized_keys , comme illustré dans l’image suivante:

entrer la description de l'image ici

Si vous souhaitez récupérer les clés privée et publique d’un fichier de clé formaté PuTTY, vous pouvez également utiliser puttygen sur les systèmes * nix. Pour la plupart des systèmes basés sur puttygen , puttygen fait partie du package putty-tools .

Sortie d’une clé privée à partir d’un fichier de clés formaté PuTTY:

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

Pour la clé publique:

$ puttygen keyfile.pem -L

 sudo apt-get install putty 

Cela installera automatiquement l’outil puttygen.

Maintenant, pour convertir le fichier PPK à utiliser avec la commande SSH, exécutez la commande suivante dans le terminal

 puttygen mykey.ppk -O private-openssh -o my-openssh-key 

Ensuite, vous pouvez vous connecter via SSH avec:

 ssh -v [email protected] -i my-openssh-key 

http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603

J’ai récemment eu ce problème car je passais de Putty pour Linux à Remmina pour Linux. J’ai donc beaucoup de fichiers PPK pour Putty dans mon répertoire .putty depuis 8 ans. Pour cela, j’ai utilisé un simple for commande bash shell pour faire tous les fichiers:

 cd ~/.putty for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done; 

Très rapide et précis, a fait le travail pour tous les fichiers que le mastic avait. S’il trouve une clé avec un mot de passe, il s’arrêtera et demandera d’abord le mot de passe pour cette clé, puis continuera.

Il est probablement plus facile de créer vos clés sous Linux et d’utiliser PuTTYgen pour convertir les clés au format PuTTY.

Faq Mastic: A.2.2

Je pense que ce que TCSgrad essayait de demander (il y a quelques années) était de savoir comment se comporter avec Linux. En d’autres termes, il existe un agent (pageant) qui contient une copie déchiffrée d’une clé privée, de sorte que la phrase secrète ne doit être insérée qu’une seule fois. Ensuite, le client ssh, putty, peut se connecter aux machines sur lesquelles sa clé publique est répertoriée comme “autorisée” sans invite de mot de passe.

L’analogue est que Linux, agissant en tant que client ssh , dispose d’un agent détenant une clé privée déchiffrée, de sorte que lorsque TCSgrad tape “ssh host”, la commande ssh obtienne sa clé privée et ne soit pas invitée à entrer un mot de passe. bien sûr, host devrait contenir la clé publique dans ~ / .ssh / authorized_keys.

L’analogue Linux de ce scénario est réalisé à l’aide de ssh-agent (l’analogue de reconstitution historique) et de ssh-add (l’analogue permettant d’append une clé privée à pageant).

La méthode qui a fonctionné pour moi était d’utiliser: $ ssh-agent $ SHELL Que $ SHELL était le tour de magie dont j’avais besoin pour faire fonctionner l’agent et restr actif. J’ai trouvé ça quelque part sur le filet et ça s’est terminé quelques heures après m’être cogné la tête contre le mur.

Maintenant, nous avons l’analogue de pageant en cours d’exécution, un agent sans clés chargées.

Si vous tapez $ ssh-add par lui-même, vous appendez (par défaut) les clés privées répertoriées dans les fichiers d’identité par défaut de ~ / .ssh.

Un article Web avec beaucoup plus de détails peut être trouvé ici