Normalerweise ist OpenSSH, das dasselbe private Schlüsselformat verwendet, identisch mit dem älteren PEM-Format, das von OpenSSL verwendet wird. (Da OpenSSL zum Analysieren des Schlüssels verwendet wird, wird auch das neuere PKCS # 8-Format akzeptiert.)
Das Problem kann also sein:
Ihre OpenSSL-Version lehnt das Laden dieses Schlüsselformats ab. Vielleicht hat es versehentlich den FIPS-Modus aktiviert und alle Algorithmen mit Ausnahme des Teils seiner ursprünglichen FIPS-Validierung abgelehnt?
Versuchen Sie, den Schlüssel in das
openssl
Befehlszeilentool zu laden (das ja auch mit einem anderen libcrypto verknüpft sein könnte und Sie dies mit ldd überprüfen sollten ):openssl rsa -noout -text < id_rsa openssl pkey -noout -text < id_rsa
Versuchen Sie es in das PKCS # 8-Format zu konvertieren:
umask 077 openssl pkey < id_rsa > id_rsa.pkcs8 ssh-add id_rsa.pkcs8
Ihr OpenSSH wurde ohne OpenSSL-Unterstützung erstellt. Auch wenn
ssh -V
die Unterstützung aktiviert war, bedeutet dies nicht automatisch, dass diessh-add
Binärdatei gleich ist - sie könnte von einer anderen Teilinstallation stammen.Verwenden Sie
type -a ssh
undtype -a ssh-add
, um die Installationsorte zu vergleichen.Wenn Sie den Pfad kennen,
ldd /usr/bin/ssh-add
überprüfen Sie, ob er mit dem Pfad verbunden istlibcrypto.so
(die OpenSSL-Verschlüsselungsbibliothek).
Wenn nichts funktioniert, konvertieren Sie Ihren Schlüssel mit ... PuTTY in das neue OpenSSH-proprietäre Format. Installieren Sie das putty
Paket für Fedora und verwenden Sie:
puttygen id_rsa -o id_rsa.newformat -O private-openssh-new ssh-add id_rsa.newformat
Auch eigenartig: GNOME schafft es irgendwie, den Schlüssel beim Login mit Seepferdchen hinzuzufügen.
Ältere GNOME-Schlüsselringversionen verfügen über eine interne Kopie des SSH-Agentencodes und sind vom System OpenSSH unabhängig. Sie akzeptieren also Schlüssel, die Ihr OpenSSH nicht akzeptiert. (Andererseits bedeutet dies eine erhebliche Verzögerung bei der Funktionsunterstützung (z. B. Ed25519-Schlüssel), und der neueste GNOME-Schlüsselring verwendet stattdessen nur das System ssh-agent.)