key load public: format non valide

j'ai utilisé PuTTY Key Generator pour générer une clé RSA-2 de 4096 bits avec une phrase de passe.

j'ai enregistrer la .ppk et une clé publique au format openSSL. La clé publique putty format ne fonctionne pas.

dans tous les cas, mon erreur est la suivante:

$ ssh -T git@github.com
key_load_public: invalid format
Enter passphrase for key '/c/Users/Dan/.ssh/id_rsa':
Hi Dan! You've successfully authenticated, but GitHub does not provide shell access.

Quel est le problème?

J'utilise Pageant pour charger les clés et j'utilise Git Bash pour essayer la connexion ssh. J'ai aussi chargé la clé dans GitHub, Je ne suis pas sûr de ce que je fais mal.

j'ai essayé d'ajouter un nouvelle ligne et de ne pas ajouter une nouvelle ligne dans GitHub

32
demandé sur JordanGS 2017-03-17 20:37:28

5 réponses

Roland mentionné dans leur réponse, c'est un avertissement que l' ssh-agent ne pas comprendre le format de la clé publique et la clé publique ne seront pas utilisées localement.

cependant, je peux aussi expliquer et répondre pourquoi l'avertissement est là. Il se résume simplement au fait que le Putty Key Generator produit deux formats différents de clés publiques selon ce que vous faites dans le programme.

Remarque: tout au long de mon explication, les fichiers clés que j'utiliserai/générerai seront nommés id_rsa avec leurs extensions appropriées. De plus, pour la commodité de copier-coller, le dossier parent des clés sera supposé être ~/.ssh/. Réglez ces détails en fonction de vos besoins.

Les Formats

Lien vers la Mastic documentation

SSH-2

quand vous save une clé utilisant le Putty Key Generator en utilisant le bouton "Enregistrer la clé publique", il sera sauvegardé dans le format défini par RFC 4716.

Exemple:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----

OpenSSH

Contrairement à la croyance populaire, ce format n'est pas enregistrée par le générateur. Cependant, il est généré et affiché dans la zone de texte intitulée "clé publique pour coller dans le fichier OpenSSH authorized_keys". Pour l'enregistrer comme un fichier, vous devez copier manuellement à partir de la zone de texte et de le coller dans un nouveau fichier texte.

Pour la clé indiqué ci-dessus, ce serait:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key

Le format de la clé est tout simplement ssh-rsa <signature> <comment> et peut être créé en réarrangeant le fichier formaté SSH-2.

Régénérer Les Clés Publiques

si vous utilisez ssh-agent, vous aurez probablement aussi, avoir accès à l' ssh-keygen.

si vous avez votre clé privée OpenSSH (id_rsa fichier), vous pouvez générer le OpenSSH Fichier de Clé Publique à l'aide de:

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

si vous n'avez que la clé privée PUTTY (id_rsa.ppk fichier), vous devez le convertir en premier.

  1. Ouvrir Putty Key Generator
  2. dans la barre de menu, cliquez sur "File" > "Load private key"
  3. Sélectionnez votre id_rsa.ppk le fichier
  4. dans la barre de menu, cliquez sur "Conversions" > "Export OpenSSH key"
  5. Enregistrez le fichier en tant que id_rsa (sans l'extension)

maintenant que vous avez une clé privée OpenSSH, vous pouvez utiliser le ssh-keygen utiliser l'outil ci-dessus pour effectuer des manipulations sur la clé.

Bonus: Le PKCS#1 codés en PEM Clé Publique au Format

pour être honnête, je ne sais pas à quoi sert cette clé puisque je n'en ai pas besoin. Mais je l'ai dans mes notes que j'ai compilées au fil des ans et je vais l'inclure ici pour la bonté saine. Le fichier devrait ressembler à ceci:

-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----

Ce fichier peut être généré à l'aide d'un OpenSSH Clé Privée (comme généré dans "la Régénération de Clés Publiques" ci-dessus) à l'aide de:

ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem

alternativement, vous pouvez utiliser une clé publique OpenSSH en utilisant:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem

Références:

64
répondu samthecodingman 2018-10-01 05:44:54

Il semble que ssh impossible de lire votre clé publique. Mais ce n'est pas grave.

vous téléchargez votre clé publique pour github, mais vous authentifier à l'aide de votre clé privée. Voir par exemple la section Fichiers dans ssh(1).

4
répondu Roland Smith 2017-03-17 17:48:27

dans le cas où vous copiez votre clé publique avec presse-papiers et la collez, il peut arriver que la chaîne de clé publique qui contient new-line puisse être cassée.

assurez-vous que votre chaîne à clé publique forme une seule ligne.

3
répondu Hojin Choi 2018-03-16 08:53:09

au lieu de sauvegarder directement la clé privée, allez sur Conversions et exportez la clé SSH. Eu le même problème et cela a fonctionné pour moi

1
répondu Jignesh Rawal 2018-07-20 18:11:05

j'ai eu le même avertissement. C'était une très vieille clé. J'ai régénéré une clé sur L'OpenSSH 7 actuel, et l'erreur avait disparu.

0
répondu arberg 2018-09-24 17:26:07