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


23

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/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.


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


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.

1

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

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.