Saya mencoba ssh ke mesin jarak jauh, usahanya gagal:
$ ssh -vvv [email protected]
OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected]
debug2: compression stoc: none,[email protected]
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Sejauh yang saya mengerti string terakhir dari log, menawarkan server untuk menggunakan salah satu dari 4 algoritma cipher berikut: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
. Sepertinya klien ssh saya tidak mendukung mereka, sehingga server dan klien tidak dapat bernegosiasi lebih lanjut.
Tetapi klien saya mendukung semua algoritma yang disarankan:
$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
[email protected]
aes128-ctr
... and there are several more.
Dan jika saya secara eksplisit menentukan algoritma seperti ini:
ssh -vvv -c aes256-cbc [email protected]
Saya berhasil masuk ke server.
My ~/.ssh/config
tidak mengandung arahan terkait cipher (sebenarnya saya menghapusnya sepenuhnya, tetapi masalahnya tetap).
Jadi, mengapa klien dan server tidak dapat memutuskan cipher mana yang akan digunakan tanpa instruksi eksplisit saya? Klien mengerti bahwa server mendukung aes256-cbc
, klien mengerti bahwa ia dapat menggunakannya sendiri, mengapa tidak menggunakannya saja?
Beberapa catatan tambahan:
Tidak ada masalah seperti itu beberapa waktu (sekitar sebulan) yang lalu. Saya tidak mengubah file konfigurasi ssh sejak saat itu. Saya memperbarui paket yang diinstal.
Ada pertanyaan yang menggambarkan masalah yang tampak sangat mirip, tetapi tidak ada jawaban untuk pertanyaan saya: ssh tidak dapat dinegosiasikan - tidak ditemukan metode pertukaran kunci yang cocok
UPDATE: masalah terpecahkan
Seperti yang dijelaskan telcoM, masalahnya ada pada server: hanya menyarankan algoritma cipher yang usang. Saya yakin bahwa klien dan server tidak ketinggalan jaman. Saya telah masuk ke server (omong-omong, ini Synology, diperbarui ke versi terbaru yang tersedia), dan memeriksa /etc/ssh/sshd_config
. Baris pertama (!) Dari file ini adalah:
Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Ini sangat aneh (fakta bahwa baris ini adalah yang pertama dalam file), saya yakin saya belum pernah menyentuh file itu sebelumnya. Namun saya telah mengubah jalur menjadi:
Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
me-restart server (tidak tahu cara me-restart sshd
layanan saja), dan sekarang masalahnya hilang: Saya bisa ssh ke server seperti biasa.
Jawaban:
The
-cbc
algoritma telah berubah menjadi rentan terhadap serangan. Akibatnya, versi terbaru dari OpenSSH sekarang akan menolak algoritma tersebut secara default: untuk saat ini, mereka masih tersedia jika Anda membutuhkannya, tetapi ketika Anda menemukannya, Anda harus mengaktifkannya secara eksplisit.Awalnya ketika kerentanan ditemukan (pada akhir 2008, hampir 10 tahun yang lalu!) Algoritma tersebut hanya ditempatkan di ujung ekor daftar prioritas demi kompatibilitas, tetapi sekarang penghentian mereka di SSH telah mencapai fase di mana algoritma tersebut berada dinonaktifkan secara default. Menurut pertanyaan ini dalam Cryptography.SE , langkah penghinaan ini sudah terjadi pada tahun 2014.
Harap pertimbangkan ini sebagai pengingat untuk memperbarui server SSH Anda , jika memungkinkan. (Jika ini merupakan implementasi berbasis firmware, lihat apakah firmware yang diperbarui tersedia untuk perangkat keras Anda.)
sumber
Anda dapat memperbarui konfigurasi ssh Anda dari file yang ada di: / etc / ssh / ssh_config
sudo nano /etc/ssh/ssh_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
Ctrl + X
. Tekan Enter untuk menyimpan dan keluar.sumber
buat file di dalam ~ / .ssh / config dan rekatkan konten di bawah ini
sumber