Chuyển tiếp X11 qua SSH nếu cấu hình máy chủ không cho phép


10

Hãy xem xét một tình huống khi tôi đăng nhập qua SSH từ máy A sang máy B, tôi có phiên X trên máy A và tôi muốn chạy chương trình X trên B.

ssh -X Blàm cho công việc này minh bạch. Nhưng nếu cấu hình máy chủ thiếu X11Forwarding yes, tôi không có quyền root trên máy chủ và quản trị viên máy chủ thì không quan tâm?

Rõ ràng có thể chuyển tiếp kết nối X11, vì tôi có thể chuyển bất cứ thứ gì tôi muốn qua kênh SSH. Trong thực tế, nếu máy chủ X cục bộ cho phép kết nối TCP, thì điều đó dễ như ssh -R 6010:localhost:6000(được điều chỉnh cho số hiển thị). Còn trường hợp phổ biến khi máy chủ X cục bộ chỉ cho phép kết nối ổ cắm thì sao? Làm cách nào để chuyển tiếp X thuận tiện và an toàn, với tối thiểu các yêu cầu cài đặt (đặc biệt là trên B)?

Câu trả lời:


2

Câu trả lời của @Demi là tốt nhưng tôi nghĩ điền nó sẽ giúp ích rất nhiều.

  • cục bộ - máy cục bộ phục vụ Xserver.
  • từ xa - máy từ xa phục vụ ứng dụng điều khiển dữ liệu đến Xserver

từ xa /etc/ssh/sshd_config:

X11Forwarding no
X11DisplayOffset 10
X11UseLocalhost yes

Remote ~/.Xauthoritytrống hoặc không tồn tại

Về địa phương:

Xephyr -ac -screen 1280x800 -br -reset   :2 &
DISPLAY=:2 ssh  -fR 6010:/tmp/.X11-unix/X2  user@remote "DISPLAY=:10 xeyes"

Trong thử nghiệm, cục bộ đang chạy Ubuntu 18.05, remote đang chạy Debian Jesse.


5

Giao thức X11 có nói chuyện khi nói chuyện với cổng tcp có khác gì khi nói chuyện với ổ cắm không?

Có lẽ bạn có thể kết hợp việc sử dụng đề xuất của riêng mình ssh -R 6010:localhost:6000để mang dữ liệu X11 qua chuyển tiếp cổng, sau đó kết nối gab cục bộ giữa cổng tcp và trình nghe ổ cắm X11 với nc như:

nc -l -p 6000 > /tmp/.X11-unix/X0

Vâng, đó là ý tưởng. Nhưng tôi đã hy vọng có một câu trả lời nói rằng, đặt điều này vào .ssh/configphía máy khách của bạn và ở phía .profilemáy chủ của bạn , và sau đó chỉ chạy chạy ssh B.
Gilles 'SO- ngừng trở nên xấu xa'

1
Có một câu trả lời "đặt cái này trong cấu hình" của bạn một cách dễ dàng, vấn đề là bạn loại trừ điều đó trong trình độ câu hỏi của bạn bởi vì tùy chọn bạn cần nằm ở phía sshd_config của mọi thứ trên B. Bạn đang cố gắng xử lý một khối. nơi để làm cho nó khó để vô tình mở ra một vấn đề bảo mật.
Caleb

3
Tôi đang nhắm mục tiêu (theo kinh nghiệm của tôi rất phổ biến) trong đó quản trị viên không quan tâm và chỉ để các cài đặt mặc định tại chỗ. Chuyển tiếp X11 không bị cấm bởi chính sách, đó chỉ là sự bất tiện bởi sự thờ ơ của sysadmin. Dù sao, chuyển tiếp X11 cho phép máy chủ tấn công máy khách, do đó, việc cấm phía máy chủ không có ý nghĩa gì nhiều.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Tôi đồng ý mặc định không thực sự bảo vệ chống lại bất cứ điều gì hữu ích. Vì vậy, chúng ta nên vận động hành lang để có được thay đổi ngược dòng mặc định?
Caleb

Đối với tôi, /tmp/.X11-unix/X0là một ổ cắm miền unix, không phải là FIFO, vì vậy mọi nỗ lực chuyển hướng đều kết thúc ENXIO: No such device.
Samveen

2
  1. Quay lên một máy chủ X bổ sung bằng Xephyr. Điều này là để bảo mật - nó ngăn hệ thống từ xa thỏa hiệp với bạn.

  2. Sử dụng SSH để chuyển tiếp một ổ cắm từ xa đến ổ cắm Xephyr. SSH cũng hỗ trợ chuyển tiếp các ổ cắm Unix.

  3. Đặt các biến môi trường trên máy chủ từ xa một cách chính xác.

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.