Tôi đang gặp sự cố khi ssh đến máy chủ từ xa bị treo với thông báo Đã gửi SSH2_MSG_KEXINIT
. Tôi đã khám phá các tùy chọn MTU mà không gặp may.
Trường hợp 1 (thất bại)
Điều này xảy ra khi tôi ssh từ PC Linux của mình thông qua bộ định tuyến openWRT chạy ứng dụng khách openVPN. Tôi đã đặt bộ định tuyến để chuyển tiếp từ mạng LAN 44.20.11.0/24
đến VPN điều chỉnh0
. Tôi có thể ping thành công máy chủ ssh từ xa từ PC của mình, vì vậy tôi không nghĩ chuyển tiếp là vấn đề.
Phiên bản máy khách openVPN PC này là 2.5.2 mips-openwrt-linux-gnu
. Phiên bản openVPN openWRT phía máy chủ là openvpn-2.3.8-16.26.1.x86_64
.
Đây là đầu ra của máy khách ssh cho trường hợp không thành công:
ssh -vvvv [email protected]
OpenSSH_8.8p1, OpenSSL 1.1.1m Ngày 14 tháng 12 năm 2021
debug1: Đọc dữ liệu cấu hình /home/myuser/.ssh/config
debug1: Đọc dữ liệu cấu hình /usr/etc/ssh/ssh_config
debug1: /usr/etc/ssh/ssh_config dòng 24: bao gồm /etc/ssh/ssh_config.d/*.conf không khớp với tệp nào
debug1: /usr/etc/ssh/ssh_config dòng 26: Áp dụng tùy chọn cho *
debug2: resolve_canonicalize: tên máy chủ 10.84.96.200 là địa chỉ
debug3: đã mở rộng UserKnownHostsFile '~/.ssh/known_hosts' -> '/home/myuser/.ssh/known_hosts'
debug3: đã mở rộng UserKnownHostsFile '~/.ssh/known_hosts2' -> '/home/myuser/.ssh/known_hosts2'
gỡ lỗi3: ssh_connect_direct: đang nhập
debug1: Đang kết nối với 10.84.96.200 [10.84.96.200] cổng 22.
debug3: set_sock_tos: đặt ổ cắm 3 IP_TOS 0x10
debug1: Đã thiết lập kết nối.
debug1: tệp nhận dạng /home/myuser/.ssh/id_rsa gõ 0
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_rsa-cert loại -1
debug1: tệp nhận dạng /home/myuser/.ssh/id_dsa loại -1
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_dsa-cert loại -1
debug1: tệp nhận dạng /home/myuser/.ssh/id_ecdsa loại 2
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_ecdsa-cert loại -1
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_ecdsa_sk gõ -1
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_ecdsa_sk-cert loại -1
debug1: tệp nhận dạng /home/myuser/.ssh/id_ed25519 gõ -1
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_ed25519-cert loại -1
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_ed25519_sk loại -1
gỡ lỗi1: tệp nhận dạng /home/myuser/.ssh/id_ed25519_sk-cert loại -1
debug1: tệp nhận dạng /home/myuser/.ssh/id_xmss gõ -1
debug1: tệp nhận dạng /home/myuser/.ssh/id_xmss-cert loại -1
debug1: Chuỗi phiên bản cục bộ SSH-2.0-OpenSSH_8.8
debug1: Phiên bản giao thức từ xa 2.0, phiên bản phần mềm từ xa OpenSSH_7.6
debug1: compat_banner: match: OpenSSH_7.6 vỗ OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* tương thích 0x04000002
debug2: cài đặt fd 3 O_NONBLOCK
debug1: Xác thực tới 10.84.96.200:22 là 'myuser'
debug3: record_hostkey: đã tìm thấy loại khóa ECDSA trong tệp /home/myuser/.ssh/known_hosts:828
debug3: record_hostkey: đã tìm thấy loại khóa RSA trong tệp /home/myuser/.ssh/known_hosts:2050
debug3: record_hostkey: đã tìm thấy loại khóa DSA trong tệp /home/myuser/.ssh/known_hosts:2051
debug3: record_hostkey: đã tìm thấy loại khóa ED25519 trong tệp /home/myuser/.ssh/known_hosts:2052
debug3: load_hostkeys_file: đã tải 4 khóa từ 10.84.96.200
debug1: load_hostkeys: fopen /home/myuser/.ssh/known_hosts2: Không có tệp hoặc thư mục như vậy
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: Không có tệp hoặc thư mục như vậy
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: Không có tệp hoặc thư mục như vậy
debug3: order_hostkeyalgs: có loại khóa ưu tiên phù hợp nhất [email protected], sử dụng nguyên văn HostkeyAlgorithms
debug3: gửi gói tin: gõ 20
debug1: SSH2_MSG_KEXINIT đã gửi```
Đây là lộ trình của PC cho tình huống này (Trường hợp 1, lỗi):
mặc định qua 44.20.6.1 dev br0
10.0.0.0/8 qua 44.20.11.11 dev enp1s0
44.20.6.0/24 dev br0 liên kết phạm vi kernel proto src 44.20.6.2
44.20.11.0/24 dev enp1s0 liên kết phạm vi kernel proto src 44.20.11.187
Trường hợp 2 (hoạt động)
Khi tôi chạy ứng dụng khách openVPN trực tiếp trên PC Linux, tôi có thể ssh thành công tới máy chủ ssh từ xa. Điều này khiến tôi nghĩ rằng vấn đề nằm ở bộ định tuyến openWRT/openVPN.
Phiên bản máy khách openvpn này là 2.5.5 x86_64-suse-linux-gnu
Đây là lộ trình của PC Linux khi bỏ qua bộ định tuyến openWRT và chạy ứng dụng khách openVPN trực tiếp trên PC:
mặc định qua 44.20.6.1 dev br0
44.20.6.0/24 dev br0 liên kết phạm vi kernel proto src 44.20.6.2
44.20.11.0/24 dev enp1s0 liên kết phạm vi kernel proto src 44.20.11.187
Tôi chỉ có một phiên bản ứng dụng khách openVPN đang chạy tại bất kỳ thời điểm nào.
Tôi đã đọc tất cả các chủ đề đề xuất thay đổi MTU. Tôi đã thử đặt nó thành 1492
, 1000
, và 576
trên các thiết bị mạng của phía khách hàng, không may mắn. MTU của máy chủ openVPN phía máy chủ được đặt thành 1492
.
Cả máy khách Linux PC và openWRT/openVPN VPN đều sử dụng cùng một cấu hình máy khách (bao gồm các phần có liên quan):
khách hàng
nhà phát triển điều chỉnh
lưu giữ 10 300
reneg-giây 0
auth-user-pass
bảo mật tập lệnh 3
kéo
phím kiên trì
kiên trì điều chỉnh
máy chủ loại ns-cert
comp-lzo
động từ 6
tắt tiếng 20
xác thực SHA512
mật mã AES-256-CBC
Quan sát của tôi:
Bởi vì điều này hoạt động khi chạy ứng dụng khách VPN trực tiếp trên PC Linux, tôi không tin rằng đây là cấu hình sai máy khách hoặc máy chủ openVPN. Tôi nghi ngờ vấn đề nằm ở giữa, trong bộ định tuyến openWRT/openVPN. Khi ssh'ing trực tiếp từ bộ định tuyến openWRT, kết nối cũng bị treo.
tấn 10.84.96.200
cho thấy không mất gói tin.
Tôi nghi ngờ vấn đề có thể là một trong những điều sau:
- Tôi đã không thay đổi MTU trên đúng thiết bị mạng
- MTU phải là một giá trị khác với
1492
, 1000
hoặc 576
- Có một cài đặt tường lửa trên bộ định tuyến openWRT đang phá vỡ điều này
- Một cái gì đó trong openWRT làm cho điều này không thành công
Thiết bị openWRT là một bộ định tuyến du lịch gl.inet Slate. Tôi có thể truy cập nhật ký từ cả openVPN máy khách và máy chủ, nhưng tôi không thể thay đổi openVPN phía máy chủ. Tôi có thể truy cập và thay đổi máy chủ ssh phía máy chủ.
Đây là một sơ đồ để hy vọng giải thích rõ ràng hơn: