Saya mencoba ssh ke mesin jarak jauh, usahanya gagal:
$ ssh -vvv admin@192.168.100.14
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: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
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
rijndael-cbc@lysator.liu.se
aes128-ctr
... and there are several more.
Dan jika saya secara eksplisit menentukan algoritma seperti ini:
ssh -vvv -c aes256-cbc admin@192.168.100.14
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.