ssh Tidak dapat dinegosiasikan: "tidak ditemukan chip yang cocok", menolak cbc

23

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/configtidak 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:

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 sshdlayanan saja), dan sekarang masalahnya hilang: Saya bisa ssh ke server seperti biasa.

lesnik
sumber
1
Terkait - unix.stackexchange.com/questions/333728/… - menampilkan info tentang cara menonaktifkan.
slm
3
Saya memiliki masalah yang sama dan menemukan Anda dapat dengan mudah mengubah ini di antarmuka web (karena ssh tidak bekerja untuk saya ...), tetapi pergi ke "Terminal -> pengaturan lanjutan" di panel kontrol DSM, dan memilih "tinggi" profil - untuk beberapa alasan, saya memiliki pilihan manual diaktifkan di sana ... Saya yakin itu adalah sesuatu yang saya lakukan dan lupakan, dan bukan sesuatu yang dilakukan oleh pembaruan DSM sebelumnya! - pilihan sekarang aes128-ctr, aes128-gcm, aes192 *, aes256 *, dhge-sha256, curve25519-sha256, hmac-sha2-256
Zak

Jawaban:

16

The -cbcalgoritma 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.)

telcoM
sumber
2

Anda dapat memperbarui konfigurasi ssh Anda dari file yang ada di: / etc / ssh / ssh_config

  1. Luncurkan terminal.
  2. Rekatkan baris ke terminal: sudo nano /etc/ssh/ssh_config
  3. Masukkan kata sandi Anda. Tekan enter. File konfigurasi SSH akan ditampilkan.
  4. Hapus komentar pada baris: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  5. Tekan Ctrl + X. Tekan Enter untuk menyimpan dan keluar.
Farhan Ar Rafi
sumber
1

buat file di dalam ~ / .ssh / config dan rekatkan konten di bawah ini

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
Yash Jagdale
sumber