Tradičně OpenSSH používá stejný formát soukromého klíče, který je identický se starším formátem PEM používaným OpenSSL. (Protože pro analýzu klíče používá OpenSSL, bude akceptovat i novější formát PKCS#8.)
Takže problém může být jeden z:
-
Vaše verze OpenSSL odmítá načíst tento formát klíče. Možná omylem aktivoval režim FIPS a odmítá jakékoli algoritmy kromě těch, které jsou součástí původního ověření FIPS?
Zkuste nahrát klíč do
openssl
nástroj příkazového řádku (který, ano, může být také propojen s jiným libcrypto a měli byste to zkontrolovat pomocí ldd ):openssl rsa -noout -text < id_rsa openssl pkey -noout -text < id_rsa
Zkuste jej převést do formátu PKCS#8:
umask 077 openssl pkey < id_rsa > id_rsa.pkcs8 ssh-add id_rsa.pkcs8
-
Vaše OpenSSH bylo vytvořeno bez podpory OpenSSL. I když
ssh -V
říká, že podpora byla povolena, což neznamená automatickyssh-add
binární je stejný – může pocházet z jiné dílčí instalace.Použijte
type -a ssh
atype -a ssh-add
pro porovnání umístění instalace.Jakmile znáte cestu, použijte
ldd /usr/bin/ssh-add
abyste ověřili, že je propojen slibcrypto.so
(kryptografická knihovna OpenSSL).
Pokud vůbec nic nefunguje, zkuste převést svůj klíč do nového formátu proprietárního OpenSSH pomocí... PuTTY. Nainstalujte putty
balíček pro Fedoru a použijte:
puttygen id_rsa -o id_rsa.newformat -O private-openssh-new
ssh-add id_rsa.newformat
Také zvláštní:GNOME nějak zvládá přidat klíč při přihlášení s mořským koníkem.
Starší verze GNOME Keyring mají interní kopii kódu agenta SSH a jsou nezávislé na systému OpenSSH. Budou tedy přijímat klíče, které vaše OpenSSH ne. (Ale na druhou stranu to znamená velké zpoždění, pokud jde o podporu funkcí (jako jsou klíče Ed25519), a nejnovější klíčenka GNOME místo toho používá systémového ssh-agenta.)
Při předávání soukromého klíče přes proměnnou kanálu CI v Gitlabu jsem dostával stejnou chybovou zprávu.
Chyba byla způsobena tím, že na konci proměnné nebyl znak nového řádku a byla opravena jeho ručním přidáním.
V mém případě byl problém způsoben nesprávnými znaky konce řádku v souboru id_rsa. Po zkopírování obsahu souboru mi chtěl pomoci textový editor Windows a převedl EOL na CR LF.