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/config
khô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:
Không có vấn đề như vậy một thời gian (khoảng một tháng) trước đây. Tôi đã không thay đổi bất kỳ tập tin cấu hình ssh kể từ đó. Tôi đã cập nhật các gói cài đặt mặc dù.
Có một câu hỏi mô tả vấn đề trông rất giống nhau, nhưng không có câu trả lời cho câu hỏi của tôi: ssh không thể thương lượng - không tìm thấy phương thức trao đổi khóa phù hợp
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 sshd
dị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.