Tôi gặp sự cố mới và gây phiền toái khi ssh chuyển tiếp kết nối X11 của mình khi đăng nhập từ máy Mac (10.7.2) sang Linux (Ubuntu 8.04). Tôi không gặp khó khăn khi sử dụng ssh -X để đăng nhập vào máy từ xa và khởi động ứng dụng dựa trên X11 từ trình bao đó.
Điều gần đây đã bắt đầu xảy ra là các yêu cầu bổ sung của các ứng dụng X11 từ cùng một lớp vỏ đó, sau một thời gian (theo thứ tự giờ), không thể bắt đầu vì màn hình chuyển tiếp đang bị chặn (tôi đoán). Ví dụ, khi cố gắng khởi động xterm, tôi nhận được thông báo thông thường về cài đặt HIỂN THỊ xấu, chẳng hạn như:
xterm Xt lỗi: Không thể mở hiển thị: localhost: 10.0
Nhưng ứng dụng X11 tôi đã khởi động ngay khi tôi đăng nhập vẫn chạy tốt, sử dụng cùng một màn hình (localhost: 10.0), chỉ là nó đã được khởi động trước đó.
Tôi đã bật đăng nhập verbose trong sshd_config và tôi thấy điều này trong tệp /var/log/auth.log để đáp ứng với nỗ lực khởi động xterm không thành công:
sshd [22104]: kênh 8: mở thất bại: bị cấm hành chính: mở thất bại
Nếu tôi ssh -X trở lại máy chủ, bắt đầu trình bao mới và được chỉ định một màn hình mới (localhost: 11.0), quy trình tương tự lặp lại: các ứng dụng X11 bắt đầu chạy tốt miễn là tôi vẫn mở chúng (ngày ), nhưng sau một vài giờ tôi không thể bắt đầu bất kỳ cái mới nào từ cái vỏ đó.
Thông tin chi tiết: Máy chủ sshd OpenSSH chạy trên Ubuntu 8.04, màn hình được chuyển tiếp tới máy Mac đang chạy Lion (10.7.2) với máy chủ Apple X mặc định. Các hệ thống được kết nối trên Ethernet LAN với một chuyển đổi duy nhất giữa chúng. Cả máy đều không chạy tường lửa. Cho đến gần đây (một vài ngày trước) thiết lập này hoạt động hoàn hảo vì vậy tôi đang bối rối không biết nên tìm ở đâu tiếp theo. Tôi không có nghĩa là một chuyên gia X11 hoặc SSH nhưng có kinh nghiệm UNIX / Linux tốt. Không có gì rõ ràng đã thay đổi trong cấu hình máy khách hoặc máy chủ mặc dù tôi đã thử thay đổi một vài tùy chọn để thử gỡ lỗi này, như đặt TCPKeepAlive của sshd_config thành không, và đặt "host + localhost" (bạn có thể nói rằng tôi đã Googling).
Khi đăng nhập từ máy tính xách tay Linux 11.10 vào cùng một máy chủ từ xa qua cùng một mạng và chuyển đổi, vấn đề này không xảy ra - một xterm có thể được gọi thành công hàng giờ sau đó từ cùng một vỏ đăng nhập ssh trong khi thử nghiệm tương tự từ Mac không thành công ( đã kiểm tra sáng nay để chắc chắn), vì vậy nó có vẻ là một vấn đề cụ thể của Mac.
Với "LogLevel DEBUG3" được đặt trên máy từ xa (máy chủ sshd) và không có thay đổi nào được thực hiện trong các kết nối máy khách của tôi, /var/log/auth.log cho thấy một thay đổi nhỏ trong báo cáo trạng thái kết nối qua đêm, đó là số cổng được sử dụng bởi một phiên ssh thành công từ máy Linux (tôi nghĩ), kết nối # 7 bên dưới:
sshd [20173]: debug3: channel 7: status: Các kết nối sau đang mở: \ r \ n # 0 phiên máy chủ (t4 r0 i0 / 0 o0 / 0 fd 14/13 cfd -1) \ r \ n # 3 Kết nối X11 từ cổng 127.0.0.1 57564 (t4 r1 i0 / 0 o0 / 0 fd 16/16 cfd -1) \ r \ n # 4 Kết nối X11 từ cổng 127.0.0.1 57565 (t4 r2 i0 / 0 o0 / 0 fd 17 / 17 cfd -1) \ r \ n # 5 Kết nối X11 từ cổng 127.0.0.1 57566 (t4 r3 i0 / 0 o0 / 0 fd 18/18 cfd -1) \ r \ n # 6 X11 kết nối từ cổng 127.0.0.1 57567 (t4 r4 i0 / 0 o0 / 0 fd 19/19 cfd -1) \ r \ n # 7 X11 kết nối từ cổng 127.0.0.1 59007
Trong báo cáo này, mọi thứ đều giống nhau giữa các báo cáo trạng thái ngoại trừ số cổng được sử dụng bởi kết nối # 7 mà tôi tin là máy khách Linux - người duy nhất vẫn duy trì kết nối hiển thị. Nó tiếp tục tăng theo thời gian, đánh giá bằng một chuỗi các báo cáo này qua đêm.
Cảm ơn vì bất kì sự giúp đỡ,
-Như
code
từ chối kết nối X11 sau khi ForwardX11Timeout hết hạn ForwardX11Timeout là một tùy chọn trong ứng dụng khách ssh của Mac giới hạn chuyển tiếp từ kết nối không tin cậy. Có khả năng sử dụng -Y thay vì -X sẽ hoạt động. ForwardX11Timeout không được ghi lại trong trang ssh của Lion. Mặc định của nó xuất hiện là 20 phút. Có thể cài đặt cao hơn trong ssh_config nhưng máy chủ X của Lion gặp sự cố nếu được đặt thành> 596 giờ ..., tính bằng mili giây, tràn 31 bit. Arrgh. Hy vọng điều này sửa nó.