ssh Không thể đàm phán: Không có mật mã phù hợp nào được tìm thấy, đang từ chối cbc


23

Tôi đang cố gắng ssh đến máy từ xa, lần thử thất bại:

$ 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

Theo như tôi hiểu chuỗi cuối cùng của nhật ký, máy chủ đề nghị sử dụng một trong 4 thuật toán mã hóa sau : aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc. Có vẻ như khách hàng ssh của tôi không hỗ trợ bất kỳ ai trong số họ, vì vậy máy chủ và máy khách không thể đàm phán thêm.

Nhưng khách hàng của tôi không hỗ trợ tất cả các thuật toán được đề xuất:

$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
... and there are several more.

Và nếu tôi chỉ định rõ ràng thuật toán như thế này:

ssh -vvv -c aes256-cbc admin@192.168.100.14

Tôi có thể đăng nhập thành công vào máy chủ.

Của tôi ~/.ssh/configkhông chứa bất kỳ chỉ thị liên quan đến mật mã (thực sự tôi đã loại bỏ nó hoàn toàn, nhưng vấn đề vẫn còn).

Vậy, tại sao máy khách và máy chủ không thể quyết định sử dụng mật mã nào mà không có hướng dẫn rõ ràng của tôi? Khách hàng hiểu rằng máy chủ hỗ trợ aes256-cbc, khách hàng hiểu rằng anh ta có thể tự sử dụng nó, tại sao không sử dụng nó?

Một số lưu ý bổ sung:

CẬP NHẬT: vấn đề đã được giải quyết

Như telcoM đã giải thích vấn đề với máy chủ: nó chỉ gợi ý các thuật toán mật mã lỗi thời. Tôi chắc chắn rằng cả máy khách và máy chủ đều không bị lỗi thời. Tôi đã đăng nhập vào máy chủ (nhân tiện, đó là Synology, được cập nhật lên phiên bản mới nhất hiện có) và kiểm tra /etc/ssh/sshd_config. Dòng đầu tiên (!) Của tệp này là:

Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Điều này rất lạ (thực tế là dòng đầu tiên trong tệp), tôi chắc chắn rằng tôi chưa bao giờ chạm vào tệp trước đó. Tuy nhiên, tôi đã thay đổi dòng thành:

Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

khởi động lại máy chủ (không tìm ra cách khởi động lại sshddịch vụ) và bây giờ vấn đề đã biến mất: tôi có thể ssh đến máy chủ như bình thường.


1
Liên quan - unix.stackexchange.com/questions/333728/ diệt - hiển thị thông tin về cách tắt.
slm

3
Tôi gặp vấn đề tương tự và thấy bạn có thể dễ dàng thay đổi điều này trong giao diện web (vì ssh không hoạt động với tôi ...), nhưng sẽ chuyển đến "Terminal -> cài đặt nâng cao" trong bảng điều khiển DSM và chọn Hồ sơ "cao" - vì một số lý do, tôi đã bật lựa chọn thủ công ở đó ... Tôi chắc chắn hy vọng đó là điều tôi đã làm và quên đi, và không phải là điều được thực hiện bởi bản cập nhật DSM trước đó! - lựa chọn hiện nay là AES128-ctr, AES128-gcm, aes192 *, AES256 *, dhge-sha256, curve25519-sha256, HMAC-sha2-256
Zak

Câu trả lời:


16

Các -cbcthuật toán đã trở nên dễ bị tấn công. Do đó, các phiên bản cập nhật của OpenSSH hiện sẽ từ chối các thuật toán đó theo mặc định: hiện tại, chúng vẫn có sẵn nếu bạn cần chúng, nhưng khi bạn phát hiện ra, bạn phải bật chúng một cách rõ ràng.

Ban đầu khi lỗ hổng được phát hiện (vào cuối năm 2008, gần 10 năm trước!) Những thuật toán đó chỉ được đặt ở cuối đuôi của danh sách ưu tiên vì mục đích tương thích, nhưng bây giờ sự phản đối của họ trong SSH đã đạt đến giai đoạn mà các thuật toán đó bị tắt theo mặc định. Theo câu hỏi này trong Cryptography.SE , bước khấu hao này đã xảy ra vào năm 2014.

Vui lòng coi đây là một lời nhắc nhở nhẹ nhàng để cập nhật máy chủ SSH của bạn , nếu có thể. (Nếu đó là một triển khai dựa trên phần sụn, hãy xem phần sụn được cập nhật có sẵn cho phần cứng của bạn không.)


2

Bạn có thể cập nhật cấu hình ssh của mình từ tệp có tại: / etc / ssh / ssh_config

  1. Khởi động một thiết bị đầu cuối.
  2. Dán dòng vào thiết bị đầu cuối: sudo nano /etc/ssh/ssh_config
  3. Nhập mật khẩu của bạn. Nhấn nút Enter. Tập tin cấu hình SSH sẽ được hiển thị.
  4. Bỏ bình luận dòng: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  5. Nhấn Ctrl + X. Nhấn Enter để lưu và thoát.

1

tạo một tập tin bên trong ~ / .ssh / config và dán bên dưới nội dung

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.