OpenSSH tidak menerima kunci ECDSA

9

Saya baru saja membuat kunci ECDSA dengan ssh-keygen:

ssh-keygen -t ecdsa -b 521 

Saya kemudian melanjutkan untuk menyalin kunci ini ke server saya:

cat .ssh/id_ecdsa.pub | ssh myserver "tee -a .ssh/authorized_keys"

Saya telah memverifikasi bahwa kunci saya ada di file.

Namun, ketika saya mencoba untuk terhubung, koneksi saya ditolak:

ssh -v -i .ssh/id_ecdsa myserver

Log:

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to myserver [192.168.1.1] port 22.
debug1: Connection established.
debug1: identity file .ssh/id_ecdsa type 3
debug1: Checking blacklist file /usr/share/ssh/blacklist.ECDSA-521
debug1: Checking blacklist file /etc/ssh/blacklist.ECDSA-521
debug1: identity file .ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.1
debug1: match: OpenSSH_6.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 10:27:b8:78:2c:e1:e3:42:8e:e3:66:c4:cc:4e:f1:c0
debug1: Host 'myserver' is known and matches the RSA host key.
debug1: Found key in /home/naftuli/.ssh/known_hosts:73
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering ECDSA public key: .ssh/id_ecdsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

Menemukan ini di log server:

auth.info sshd[13874]: userauth_pubkey: unsupported public key algorithm: ecdsa-sha2-nistp521 [preauth]

Klien saya dan server menggunakan OpenSSH. Versi OpenSSH server adalah OpenSSH 6.1, versi OpenSSH klien saya adalah OpenSSH 5.9.

Bagaimana saya bisa mengetahui algoritma kunci mana yang didukung oleh server saya?

Naftuli Kay
sumber
Penyesuaian Sikap OpenWRT 12.09. Saya dapat mengkompilasi ulang server OpenSSH jika perlu. Apakah ada cara untuk setidaknya daftar algoritma yang didukung?
Naftuli Kay

Jawaban:

7

Seperti banyak sistem tertanam lainnya, OpenWrt menggunakan dropbear sebagai server ssh, bukan OpenSSH yang lebih berat yang biasa dilihat pada sistem Linux. Versi dropbear yang lebih lama hanya mendukung kunci RSA dan DSA; dukungan untuk ECDSA tidak ditambahkan hingga versi 2013.62 (yang baru saja dirilis beberapa hari yang lalu).

Itu harus segera muncul di Barrier Breaker (trunk); tetapi Anda tidak akan melihatnya di Penyesuaian Sikap.

Michael Hampton
sumber
Saya sebenarnya telah menginstal dan mengkonfigurasi OpenSSH pada router OpenWRT saya. Itu sebabnya saya terkejut bahwa itu tidak berhasil.
Naftuli Kay
yaitu: Saya tidak menggunakan dropbear dan sudah dihapus.
Naftuli Kay
Dalam hal itu, Anda (1) sendirian, dan (2) tampaknya di luar batas dari apa yang saya harapkan dalam lingkungan profesional.
Michael Hampton
Saya rasa begitu. Saya akan menghubungi OpenWRT tentang hal itu dan melihat apa yang bisa saya lakukan. OpenSSH disediakan sebagai paket di OpenWRT, jadi saya bertanya-tanya mengapa itu akan membuat saya sendiri.
Naftuli Kay
0

ecdsadidukung dari openssh-server versi 5.7 . Apa versi openssh-server yang Anda jalankan? jalankan dpkg -l | grep openssh-server | awk '{print $3}' | cut -d: -f2untuk menemukan versi.

dibunuh oleh lucifer
sumber
0

Jika sistem Anda adalah Red Hat Enterprise Linux 6.4 (atau lebih tua) atau Fedora 19 (atau lebih tua), perhatikan ECDSA telah dihapus dari sana. Saya tidak memiliki detail mengapa itu (mungkin alasan hukum): https://www.mail-archive.com/[email protected]/msg00755.html

lzap
sumber
ECDSA ada di RHEL 6.5. sebagai bagian dari openssl 1.0.1 dan juga perhatikan bahwa OP mengklarifikasi bahwa mereka menggunakan OpenWRT 12.09
user9517
Oh benar, diedit.
lzap
3
Ya, itu alasan hukum. Namun, hingga hari ini, tidak setiap distributor memungkinkan kriptografi Kurva Elliptic karena paten; RedHat hanya mengaktifkan beberapa kurva, bukan ECC pada umumnya, setelah tinjauan hukum yang cermat, tetapi yang mereka aktifkan adalah pengaruh NIST (dan karenanya NSA). Anda mungkin ingin menghindari ECC meskipun daya komputasi yang dikurangi tampak bagus.
mirabilos
0

Meninggalkan ini di sini karena ini terjadi pada saya:

Hari 1: Menyiapkan mesin baru, saya menyalin kunci di - milikku dulu - dan bisa masuk dengan baik.

Hari 2: Saya tidak bisa masuk dengan kunci ed25519 saya. Hah? Saya menambahkan kunci RSA; berhasil. Saya membuat kunci ed25519 baru dan itu bekerja ... tapi satu lama saya tidak. WTF?

Ternyata setelah pengujian, saya menginstal kunci saya ke root .ssh / otor_keys sebagai cadangan ... dan lupa untuk memperbaiki izin pada file itu. Jadi openssh membuat blacklist kunci saya, membuat saya tidak dapat login. Memperbaiki perms pada /root/.ssh/authorized_keys memungkinkan saya untuk masuk sebagai pengguna saya .

pjz
sumber