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_fqdn
giố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 và ở đâ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.
desktop
nằm sau bộ định tuyến NAT và laptop
phía sau bộ định tuyến NAT.