Máy tính từ xa qua đường hầm đảo ngược SSH để thay thế TeamViewer


14

Tôi muốn mở một phiên máy tính từ xa từ máy tính xách tay của tôi đến máy tính để bàn qua đường hầm SSH (đảo ngược) của tôi. Điều đó nên đơn giản (hoặc ít nhất là có thể làm được), phải không? Cho đến bây giờ tôi đã sử dụng Trình xem nhóm để đăng nhập vào máy tính để bàn từ xa. Tôi muốn đạt được kết quả tương tự mà không cần Team Viewer.

Đây là đường hầm SSH của tôi trông như thế nào:

laptop--->nat--->middleman<--nat<--desktop

Tất cả các máy đều chạy Linux (chủ yếu là Kubfox 12.04 hoặc OpenSuse 12.3). Tôi không thể thay đổi bất kỳ cổng hoặc thực hiện bất kỳ thay đổi cấu hình trên các bộ định tuyến nat.

Tôi sẽ mô tả đường hầm SSH của mình vì hiểu rằng điều đó dường như là cần thiết trong việc giải quyết vấn đề VNC / máy tính từ xa là vấn đề cốt lõi của tôi. Về chân này:

middleman<--nat<--desktop

... đây là cách nó được thành lập:

autossh -M 5234 -N -f -R 1234:localhost:22 user@middleman.com

Về chân này:

laptop--->nat--->middleman

Tôi có thể kết nối với người trung gian như sau:

me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman  

Tuy nhiên, những gì tôi thực sự cần làm là kết nối trực tiếp với máy tính để bàn, không phải với người trung gian. Để làm điều đó tôi sử dụng netcat ("nc") trên người trung gian. Dựa trên điều này có vẻ như nc là bắt buộc. Vì vậy, tôi chỉnh sửa tệp cấu hình SSH trên máy tính xách tay để sử dụng ProxyCommand và nc:

me@laptop:~/.ssh$ nano config

Nội dung là:

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Trường hợp middleman_fqdngiống như "middman.com"

Sau đó, tôi chỉ kết nối với "máy tính để bàn" trong một bước:

me@laptop:~$ ssh family_desktops -p 1234

(Tôi đã làm việc này dựa trên sự giúp đỡ ở đâyở đây và những câu hỏi liên quan khác mà tôi đã hỏi. Tôi đã hỏi rất nhiều câu hỏi về chủ đề này bởi vì tôi đã vật lộn với nó trong nhiều tuần.)

Với kết nối SSH này, tôi đạt được trình bao đầy đủ chức năng trên máy tính của mình được dán nhãn desktop. Hoàn hảo.

Bây giờ tôi chỉ cần một giải pháp máy tính từ xa giống như VNC (hoặc giống TeamViewer) trên đường hầm SSH này. Làm sao?

Đây là những gì tôi đã cố gắng cho đến nay:

người trung gian <- nat <- máy tính để bàn

autossh -M 5235 -N -f -R 1235:localhost:5901 user@middleman.com

với kết nối đó được thiết lập:

x11vnc -autoport 5901 

Tôi xem để chắc chắn rằng nó kết nối với cổng 5901.

máy tính xách tay ---> nat ---> người trung gian <- nat <- máy tính để bàn

máy tính xách tay ~ / .ssh / config:

Host family_desktops
  ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Thiết lập đường hầm:

me@laptop:~$ sudo ssh family_desktops

Khách hàng VNC:

connect to localhost:5901

Điều này đưa ra một lỗi "không tìm thấy máy chủ"

Tôi đã thử một số biến thể trên ProxyCommand, không có biến thể nào thành công. Rõ ràng, tôi đoán về tham số nào sẽ có trong ProxyCommand và tham số nào sẽ nằm trên dòng lệnh ssh. Tôi có thể thấy một số vấn đề tiềm ẩn với thiết lập của mình, nhưng tôi chưa thể tìm ra điều gì sẽ khiến tất cả hoạt động.

PS Như đã đề cập, tôi đã hỏi một số câu hỏi về điều này. Một số trong đó dẫn tôi đến gần hơn với giải pháp và tạo thành cơ sở cho câu hỏi hiện tại của tôi. Các câu hỏi khác của tôi về chủ đề này chỉ cho thấy sự thiếu hiểu biết và không có khả năng của tôi để đặt câu hỏi theo đúng mẫu. Tại thời điểm này, câu hỏi hiện tại này thể hiện khả năng tốt nhất của tôi để nêu vấn đề của tôi là gì và giải pháp mong muốn của tôi là gì, nhưng một số câu hỏi khác của tôi vẫn còn mở. Đây là một trong đó có liên quan.


1
Mặt lưu ý: Xin vui lòng không sử dụng “ở đây” hoặc “này” liên kết. Cung cấp một tên có ý nghĩa cho các liên kết của bạn, ví dụ như tiêu đề của câu hỏi hoặc trang web bạn liên kết đến.
Marco

Bạn đã không hỏi câu hỏi này trước đây? unix.stackexchange.com/questions/82255/ Cách
slm

@slm - xem một số liên kết trong câu hỏi của tôi. Chúng là một số câu hỏi liên quan của tôi. Tôi vẫn đang cố gắng đạt được một giải pháp và mỗi câu hỏi dường như khiến tôi gần gũi hơn ...
MountainX-for-Monica

Điều này dường như vô cùng phức tạp. Tôi sử dụng máy tính để bàn từ xa của máy Windows 8 của mình bằng cách SSH vào một máy cũng trên cùng một mạng có cổng mở trong tường lửa.
Tim

@Tim đây là một đường hầm SSH đảo ngược và nó được yêu cầu vì desktopnằm sau bộ định tuyến NAT và laptopphía sau bộ định tuyến NAT.
MountainX-for-Monica

Câu trả lời:


3

Bạn có thể thử làm bước thứ hai mà không làm nc không? Đó là - làm VNC chỉ với -L và -R. Tôi tin rằng vấn đề là phiên netcat của bạn đang kết nối trở lại với một đã mở. Vì vậy, khi làm công cụ VNC không sử dụng netcat.


1

Thay vì ProxyCommand, bạn nên đặt "gatewayports yes" cho người trung gian sshd.conf của bạn.

  1. Sau đó lấy đường hầm từ xa từ máy tính để bàn sang người trung gian và mở cổng tcp x trong người trung gian và vnc trên địa phương.
  2. Sau đó lấy đường hầm cục bộ từ máy tính xách tay đến người trung gian mở cổng vnc cho bạn localhost và tạo đường hầm cho x.
  3. Sau đó kết nối với localhost: vnc, vì vậy nó sẽ đi qua đường hầm cục bộ đến người trung gian và đường hầm từ xa đến máy tính xách tay vnc.

Sau khi bạn làm cho nó hoạt động, tìm hiểu thêm về các cài đặt cổng an toàn hơn.

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.