Chạy máy khách X qua đường hầm ssh multi-hop


7

Gần đây tôi đã chuyển đổi máy phát triển gia đình của mình sang Linux và muốn có thể đăng nhập vào nó từ công việc nếu cần. Tôi sử dụng hỗn hợp máy Linux và Windows và tôi đã có nhiều hướng ssh / putty / Xorg / Cygwin / etc được thiết lập để khởi chạy máy khách X từ xa và hiển thị trên máy chủ X cục bộ.

Vấn đề của tôi là, các máy gia đình của tôi nằm phía sau tường lửa và để truy cập chúng đòi hỏi phải vượt qua tường lửa qua ssh. Khi tôi đang chạy Windows, tôi đã thiết lập chuyển tiếp cổng ssh trên tường lửa để trả các kết nối RDC đến đúng máy, nhưng có vẻ như đường hầm X phức tạp hơn. Chỉ cho phép chuyển tiếp X11 trên kết nối ssh tới tường lửa dường như chỉ hoạt động đối với các máy khách X chạy trên máy đó, không phải cho tôi bắt đầu trên "hop" thứ hai.

Có cách nào để chuyển tiếp / đường hầm / bất cứ điều gì kết nối X11 thông qua tường lửa và đến một máy từ xa là một bước nhảy xa không?

Lưu ý phụ:

Tôi không đặc biệt kết hôn với X11, vì vậy nếu có một số tùy chọn khác sẽ hoạt động tốt hơn trên nhiều bước nhảy ssh, tôi sẽ coi đó là câu trả lời (đặc biệt là nếu bạn có thể cho tôi biết tại sao nó tốt hơn). Tôi tình cờ đã có một máy chủ Xorg-ish trên tất cả các máy làm việc của tôi. Các yêu cầu cơ bản là:

  • Display-side-thingee (máy chủ X, máy khách RDC, v.v.) cần chạy trên Linux và Windows
  • Công cụ phía ứng dụng chỉ cần chạy trên Linux
  • Cần phải làm việc trên một "đường hầm" ssh của ít nhất 2 hai bước.

Câu trả lời:


10

Giả sử rằng bạn có cấu trúc liên kết sau:

Công việc -> Tường lửa (chuyển tiếp cổng) -> Máy chủ -> Mục tiêu.

Nếu vấn đề của bạn là bạn không bật X11 Targetvì bạn đang làm ssh -X Servervà sau đó bên trong Serverbạn đang làm ssh -X Targetđiều này có thể làm việc cho bạn.

sshcho phép bạn chuyển tiếp cổng quá. Bạn có thể sử dụng sshkết nối để có được một cổng từ xa được ánh xạ trong một cổng cục bộ. Ví dụ để truy cập Targetmột người có thể:

Ánh xạ cổng 22vào Targetmột cổng cục bộ 20000bằng Serverkết nối (giữ kết nối này mở hoặc sử dụng tùy chọn -Nf).

ssh -L20000:Target:22 Server

Sau đó kết nối với Targetviệc sử dụng cổng ánh xạ này.

ssh -p 20000 -X localhost


Để chắc chắn rằng tôi hiểu, đây là thiết lập một đường hầm ssh trực tiếp đến máy đích để nó chỉ trông giống X như một bước nhảy? Nghe có vẻ như nó sẽ hoạt động, tôi sẽ cho bạn biết ...
KutuluMike

Đúng. Chính xác. Bạn đang lấy một cổng từ xa bằng cách sử dụng một máy chủ làm cầu nối và ánh xạ nó tới một cổng cục bộ. SSH cho phép bạn làm những việc như vậy với -L (từ xa đến cục bộ), -R (từ xa ro cục bộ) và -D (tạo một loại proxy).
Tinti

Đây là một kỹ thuật hữu ích, và hoàn thành tùy chọn tốt nhất, nhưng lưu ý các vấn đề về hiệu năng khi chạy TCP qua TCP khi bạn bị mất gói.
mc0e

Kết nối giữa Target và Server ở đây có an toàn hay không? Theo tôi hiểu, đây có thể là một vấn đề?
Syrtis Major

1
@SyrtisMajor an toàn như một sshkết nối vì dữ liệu đang được vận chuyển bởi sshgiao thức.
Tinti
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.