Secara tradisional OpenSSH menggunakan format kunci privat yang sama identik dengan format PEM lama yang digunakan oleh OpenSSL. (Karena menggunakan OpenSSL untuk mem-parsing kunci, format PKCS#8 yang lebih baru juga akan diterima.)
Jadi masalahnya bisa salah satu dari:
-
Versi OpenSSL Anda menolak memuat format kunci ini. Mungkin itu secara tidak sengaja mengaktifkan mode FIPS dan menolak algoritme apa pun kecuali bagian dari validasi FIPS aslinya?
Coba muat kunci ke dalam
openssl
alat baris perintah (yang, ya, mungkin juga ditautkan ke libcrypto yang berbeda , dan Anda harus memeriksa dengan ldd ):openssl rsa -noout -text < id_rsa openssl pkey -noout -text < id_rsa
Coba ubah ke format PKCS#8:
umask 077 openssl pkey < id_rsa > id_rsa.pkcs8 ssh-add id_rsa.pkcs8
-
OpenSSH Anda dibuat tanpa dukungan OpenSSL. Meskipun
ssh -V
mengatakan dukungan telah diaktifkan, itu tidak secara otomatis berartissh-add
binernya sama – mungkin berasal dari instalasi parsial yang berbeda.Gunakan
type -a ssh
dantype -a ssh-add
untuk membandingkan lokasi pemasangan.Setelah Anda mengetahui jalurnya, gunakan
ldd /usr/bin/ssh-add
untuk memverifikasi bahwa itu ditautkan kelibcrypto.so
(perpustakaan kriptografi OpenSSL).
Jika tidak ada yang berhasil sama sekali, coba ubah kunci Anda ke format berpemilik OpenSSH baru menggunakan... Putty. Instal putty
paket untuk Fedora, dan gunakan:
puttygen id_rsa -o id_rsa.newformat -O private-openssh-new
ssh-add id_rsa.newformat
Juga aneh:GNOME entah bagaimana berhasil menambahkan kunci saat login dengan kuda laut.
Versi GNOME Keyring yang lebih lama memiliki salinan internal dari kode agen SSH dan tidak bergantung pada sistem OpenSSH. Jadi mereka akan menerima kunci yang tidak akan diterima oleh OpenSSH Anda. (Namun di sisi lain, ini berarti kelambatan yang parah dalam hal dukungan fitur (seperti kunci Ed25519), dan Keyring GNOME terbaru hanya menggunakan sistem ssh-agent sebagai gantinya.)
Saya mendapatkan pesan kesalahan yang sama saat meneruskan kunci privat melalui variabel pipeline CI di Gitlab.
Kesalahan disebabkan oleh tidak adanya karakter baris baru di akhir variabel dan telah diperbaiki dengan menambahkannya secara manual.
Dalam kasus saya, masalahnya disebabkan oleh karakter baris akhir yang salah dalam file id_rsa. Setelah menyalin konten file, editor teks Windows ingin membantu saya dan mengubah EOL menjadi CR LF.