133 votes

key_load_public: format non valide

J'ai utilisé du Mastic Générateur de Clé pour générer une 4096 bits RSA-2 clés avec un mot de passe.

- Je économiser de l' .ppk et une openSSL format de la clé publique. Le mastic format de la clé publique ne fonctionne pas.

En tout cas, mon erreur est comme suit:

$ 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 l'enjeu?

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

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

220voto

samthecodingman Points 1859

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

Cependant, je peux aussi élaborer et de répondre pourquoi l'avertissement est là. Il se résume au fait que le PuTTY Key Generator génère deux publics différents format des clés en fonction de ce que vous faites dans le programme.

Remarque: tout au Long de mon explication, les fichiers de clé, je vais être en utilisant/génération sera nommé id_rsa avec leurs extensions. En outre, pour les copier-coller de confort, le dossier parent du dossier les clés seront supposés ~/.ssh/. Régler ces détails pour répondre à vos besoins en tant désiré.

Les Formats

Lien vers la documentation Mastic

SSH-2

Lorsque vous enregistrez une clé à l'aide du Mastic Générateur de Clé à l'aide de la "Save public key" bouton, il sera enregistré dans le format défini par la norme 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 le coller dans OpenSSH fichier 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éé par la réorganisation de la SSH-2 fichier au format.

La Régénération De Clés Publiques

Si vous faites usage d' ssh-agent, vous aurez probablement aussi, avoir accès à l' ssh-keygen.

Si vous avez votre OpenSSH Clé Privée (id_rsa le 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 le MASTIC Clé Privée (id_rsa.ppk le fichier de), vous devez le convertir en premier.

  1. Ouvrez le Mastic Générateur de Clé
  2. Sur la barre de menu, cliquez sur "Fichier" > "Charger la clé privée"
  3. Sélectionnez votre id_rsa.ppk le fichier
  4. Sur la barre de menu, cliquez sur "Conversions" > "Exporter OpenSSH clé"
  5. Enregistrez le fichier en tant que id_rsa (sans extension)

Maintenant que vous avez une OpenSSH Clé Privée, vous pouvez utiliser l' ssh-keygen outil comme ci-dessus pour effectuer des manipulations sur la touche.

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

Pour être honnête, je ne sais pas ce que cette clé est utilisée pour que je n'ai pas besoin d'elle. Mais je l'ai dans mes notes que j'ai rassemblées au fil des ans et je vais l'inclure ici pour sain bonté. 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 un OpenSSH Clé Publique à l'aide de:

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

Références:

8voto

Hojin Choi Points 46

Si vous copiez et collez votre clé publique avec le presse-papier, il peut arriver que la chaîne de clé publique contenant la nouvelle ligne puisse être cassée.

Assurez-vous que votre chaîne de clé publique est formée d'une seule ligne.

7voto

Roland Smith Points 10392

Il semble que ssh ne peut pas lire votre clé publique. Mais ça n'a pas d'importance.

Vous téléchargez votre clé publique sur github, mais vous vous authentifiez à l'aide de votre clé privée . Voir par exemple la section FILES en ssh(1) .

2voto

JackR Points 60

Au lieu d'enregistrer directement la clé privée, accédez à Conversions et exporter la clé SSh. Avait le même problème et cela a fonctionné pour moi

1voto

arberg Points 1370

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 a disparu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X