Traditionnellement, OpenSSH utilisait le même format de clé privée, identique à l'ancien format PEM utilisé par OpenSSL. (Comme il utilise OpenSSL pour analyser la clé, il acceptera également le nouveau format PKCS#8.)
Le problème peut donc être l'un des suivants :
-
Votre version d'OpenSSL refuse de charger ce format de clé. Peut-être a-t-il accidentellement activé le mode FIPS et refuse-t-il tous les algorithmes à l'exception de ceux faisant partie de sa validation FIPS d'origine ?
Essayez de charger la clé dans le
openssl
outil de ligne de commande (qui, oui, pourrait également être lié à un autre libcrypto , et vous devriez vérifier avec ldd ):openssl rsa -noout -text < id_rsa openssl pkey -noout -text < id_rsa
Essayez de le convertir au format PKCS#8 :
umask 077 openssl pkey < id_rsa > id_rsa.pkcs8 ssh-add id_rsa.pkcs8
-
Votre OpenSSH a été créé sans le support d'OpenSSL. Même si
ssh -V
indique que le support a été activé, cela ne signifie pas automatiquement lessh-add
le binaire est le même - il peut provenir d'une installation partielle différente.Utilisez
type -a ssh
ettype -a ssh-add
pour comparer les emplacements d'installation.Une fois que vous connaissez le chemin, utilisez
ldd /usr/bin/ssh-add
pour vérifier qu'il est lié àlibcrypto.so
(la bibliothèque cryptographique OpenSSL).
Si rien ne fonctionne du tout, essayez de convertir votre clé au nouveau format propriétaire OpenSSH en utilisant... PuTTY. Installez le putty
package pour Fedora, et utilisez :
puttygen id_rsa -o id_rsa.newformat -O private-openssh-new
ssh-add id_rsa.newformat
Aussi particulier:GNOME parvient en quelque sorte à ajouter la clé lors de la connexion avec hippocampe.
Les anciennes versions de GNOME Keyring ont une copie interne du code de l'agent SSH et sont indépendantes du système OpenSSH. Ainsi, ils accepteront des clés que votre OpenSSH n'acceptera pas. (Mais d'un autre côté, cela signifie un retard important en termes de prise en charge des fonctionnalités (telles que les clés Ed25519), et le dernier trousseau de clés GNOME utilise simplement l'agent ssh du système à la place.)
Je recevais le même message d'erreur lors du passage de la clé privée via une variable de pipeline CI dans Gitlab.
L'erreur était due à l'absence de caractère de nouvelle ligne à la fin de la variable et a été corrigée en l'ajoutant manuellement.
Dans mon cas, le problème a été causé par des caractères de fin de ligne incorrects dans le fichier id_rsa. Après avoir copié le contenu du fichier, l'éditeur de texte Windows a voulu m'aider et a converti les EOL en CR LF.