150 votes

SSH retourne soudainement un format invalide

Il y a quelque temps, j'ai mis en place un serveur sur AWS et j'ai utilisé leur clé SSH générée. J'ai enregistré la clé dans Lastpass et je l'ai récupérée avec succès à partir de là auparavant, et j'ai réussi à la faire fonctionner. Cependant, après avoir essayé à nouveau aujourd'hui, je n'arrive pas à la faire fonctionner.

-rw------- 1 itsgreg users 1674 Jun 6 12:51 key_name

J'ai essayé ssh -i key_name, ssh-keygen -f key_name, mais rien ne fonctionne, je reçois toujours ce message d'erreur :

Chargement de la clé "key_name" : format invalide

Y a-t-il un moyen de réparer cela?

0 votes

Juste remarqué quelque chose : il devrait être chmoded 0400 (lecture seule). Il semble que ce ne soit pas le cas ici, car l'utilisateur a le privilège d'écriture.

0 votes

J'avais juste besoin d'une nouvelle ligne à la fin de la clé privée. Copié d'Ubuntu sur Mac et rencontré une erreur.

0voto

J'ai eu une erreur similaire Chargement de la clé "/root/.ssh/id_rsa" : format invalide quand j'ai essayé

RUN echo "$ssh_prv_key" > /root/.ssh/id_rsa &&     chmod 600 /root/.ssh/id_rsa

Cela a conduit à des erreurs comme fichier d'identité /root/.ssh/id_rsa de type -1 format invalide et read_passphrase: impossible d'ouvrir /dev/tty.

La bonne manière serait d'utiliser

COPY id_rsa /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa

La solution expliquée : ma clé privée était mal formatée - au lieu de plusieurs lignes, elle était passée en une seule ligne, et vous pourriez rencontrer un autre problème de format comme un "-" oublié au début ou à la fin, ou quelque chose de mauvais à la fin des lignes, comme un format de nouvelle ligne manquant ou une lettre supplémentaire à la fin d'une ligne.

Voir Dockerfile: cloner le dépôt avec une clé privée sans mot de passe. Erreurs : "agent d'authentification" ou "read_passphrase: impossible d'ouvrir /dev/tty" pour plus de détails, avec l'idée principale de Ajouter une clé privée à ssh-agent dans le fichier docker, qui a à son tour eu l'idée de Gitlab CI/Docker : ssh-add continue de demander le mot de passe.

0voto

Dicky Macias Points 1

J'ai fait quelque chose comme les informations ici https://github.com/marketplace/actions/webfactory-ssh-agent

Format de clé privée SSH Si la clé privée n'est pas au format PEM, vous verrez un message d'erreur "Chargement de la clé impossible "(stdin)": format invalide".

Utilisez ssh-keygen -p -f chemin/vers/votre/clé -m pem pour convertir votre fichier de clé en PEM, mais assurez-vous de faire une sauvegarde du fichier d'abord.

Cela a résolu mon problème.

0voto

linux64kb Points 101

Si vous êtes sur Windows en utilisant Cygwin, Gitbash, MSYS ou des outils similaires, essayez de démarrer votre commande en mode élevé (exécutez en tant qu'administrateur).

J'ai dû le faire pour réexporter le fichier de clé publique. Si vous utilisez le fichier .ssh/config, assurez-vous que le fichier de clé privée y est référencé IdentityFile ~/.ssh/id_rsa.

Créer votre fichier de clé privée à l'aide de puttygen entraînera également des messages d'erreur similaires, utilisez OpenSSH pour générer votre paire de clés privée-publique.

Utiliser le fichier de clé publique (~/.ssh/id_rsa.pub) comme votre fichier d'identité (IdentityFile dans .ssh/config) entraînera des messages d'erreur trompeurs comme

  • format invalide
  • temps de connexion dépassé

0voto

TL;DR

FWIW, I ran into this problem today.

I never figured out what the new install of Win32 "portable openssh" 8.0.p1 didn't like about the key files - I just created new keys and added them to github and gitlab:

ssh-keygen -o -t rsa -b 4096 -C "Nouveau format OpenSSH pour github" -f C:\Users\mburr\.ssh\github.mburr-precor.key-2.id_rsa

Détails

I had a working install of OpenSSH from the https://github.com/PowerShell/openssh-portable project (as installed by Chocolatey). But a few days ago I had to perform a "repair install" of Windows and therefore had to reinstall OpenSSH.

After that my keys used to authenticate to github and gitlab would no longer work giving the "invalid format" error. These were the identical key files that had been on the system before (the Repair Reinstall didn't remove those files).

I found no problems with line endings (all LF and an LF at the end of the file). The keys worked on a Linux system - and I later found that they worked with the OpenSSH included with Git for Windows v2.33.1.

 using the Win32 "portable OpenSSH" (from https://github.com/PowerShell/openssh-portable as installed by Chocolatey)
# Private key file error: "invalid format"
#

C:\devtrees>"c:\Program Files\OpenSSH-Win64\ssh.exe" -V
OpenSSH_for_Windows_8.0p1, LibreSSL 2.6.5

C:\devtrees>"c:\Program Files\OpenSSH-Win64\ssh.exe" -F c:\util\emptyfile -i c:\users\mburr\.ssh\github.mburr.id_rsa -T git@github.com
Load key "c:\\users\\mburr\\.ssh\\github.mburr.id_rsa": invalid format
git@github.com: Permission denied (publickey).

#-------------------------------------------------------
# using the OpenSSH that comes with Git for Windows v2.33.1
# No problem with the private key
#

C:\devtrees>c:\git\usr\bin\ssh.exe -V
OpenSSH_8.8p1, OpenSSL 1.1.1l  24 Aug 2021

C:\devtrees>c:\git\usr\bin\ssh.exe -F c:\util\emptyfile -i c:\users\mburr\.ssh\github.mburr.id_rsa -T git@github.com
Enter passphrase for key 'c:\users\mburr\.ssh\github.mburr.id_rsa':
Hi mburr! You've successfully authenticated, but GitHub does not provide shell access.

(emptyfile is just that. I specified it as the config file with -F to force ssh to ignore ~/.ssh/config)

I never figured out what the Win32 "portable openssh" 8.0.p1 didn't like about the key files - I just created new keys and added them to github and gitlab:

ssh-keygen -o -t rsa -b 4096 -C "Nouveau format OpenSSH for github" -f C:\Users\mburr\.ssh\github.mburr-precor.key-2.id_rsa

Problème résolu.

-2voto

Thomas Points 101

Assurez-vous de renommer votre clé PRIVÉE et supprimez l'extension de fichier qui pose problème.

Étapes que j'ai prises

Créez votre clé publique :

Assurez-vous d'être dans le même répertoire que votre clé privée

Comment créer la clé publique :

ssh-keygen -y -f Private-Key.pem > Public-key.pub

assurez-vous que la clé PUBLIQUE a une extension de fichier .pub

après cela, fournissez les autorisations appropriées pour des raisons de sécurité :

chmod 600 Private-Key.pem
chmod 400 Public-key.pub

ENSUITE la partie la plus importante et la raison pour laquelle vous avez reçu l'erreur "format invalide"

Assurez-vous de renommer votre clé PRIVÉE et supprimez l'extension de fichier :

Supprimez le .pem de votre clé privée.

mv Private-Key.pem Private-Key

ou si vous êtes sur un ordinateur Windows, renommez la clé privée, même nom mais supprimez le .pem

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X