giải thích đường hầm ssh


8

Tôi có một câu hỏi liên quan đến đường hầm ssh. Tôi đã đọc bài viết này

Tôi muốn làm cho chuyển tiếp X hoạt động và chạy một số ứng dụng X tại nhà và hiển thị chúng trên một hệ thống từ xa:

 ssh -X -R 5555:localhost:22 user@remoteserver.com -N

Trên điều khiển từ xa:

 ssh -X -p 5555 user@192.168.1.2

Sau đó về nhà:

 //configure sshd to listen on 5555
 ssh user@remoteserver.com
 //here run some app

Có nên làm việc không?


Hãy thử nó thay vì hỏi nếu nó sẽ làm việc.
Wutaz

Có, luôn luôn tốt nhất để thử mọi thứ và sau đó nếu nó không hoạt động, hãy hỏi tại sao.
slm

có vẻ như bạn đang làm điều đó ngược lại .. "bình thường" là chạy trong điều khiển từ xa và hiển thị cục bộ. Nếu bạn muốn hiển thị trên remote hãy cho chúng tôi biết về mạng của bạn, nó có thể đơn giản và thậm chí không cần ssh.
Skaperen 22/03/2015

Câu trả lời:


9

Tôi đã vẽ một số bản phác thảo

Máy, nơi lệnh ssh đường hầm được gõ được gọi là »máy chủ của bạn« .

đường hầm ssh bắt đầu từ địa phương


đường hầm ssh bắt đầu từ xa

Giới thiệu

  1. địa phương: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHostcó nghĩa là: kết nối với ssh đến connectToHostvà chuyển tiếp tất cả các nỗ lực kết nối đến cổng cục bộ trên máy được gọi , có thể đạt được từ máy.sourcePortonPortforwardToHostconnectToHost

  2. Xa xôi: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHostcó nghĩa là: kết nối với ssh đến connectToHostvà chuyển tiếp tất cả các nỗ lực kết nối đến điều khiển từ xa sourcePort đến cổng onPorttrên máy được gọi forwardToHost, có thể đạt được từ máy cục bộ của bạn.

Ví dụ của bạn

Chà, nếu bạn chỉ muốn làm cho chuyển tiếp X hoạt động, tức là chạy một số ứng dụng X trên máy tính ở nhà và hiển thị chúng trên một hệ thống từ xa (hãy gọi nó là máy tính làm việc, vì nó có thể ở nơi làm việc của bạn), sau đó bạn có thể không cần một đường hầm ssh nào cả.

Khởi động ứng dụng X không có đường hầm

Bạn có thể chỉ đơn giản là ssh từ máy tính làm việc đến máy tính ở nhà của bạn? Nếu vậy, khi bạn đang ngồi trên máy tính làm việc và muốn khởi động ứng dụng X chạy trên máy tính ở nhà nhưng hiển thị trên máy tính làm việc của bạn , bạn phải nhập (trên máy tính làm việc):

ssh -X homeuser @ homecomputer firefox

Điều này sẽ bắt đầu firefox trên máy tính ở nhà của bạn và hiển thị nó trên máy mà bạn đã gõ lệnh này, ví dụ: máy tính làm việc của bạn.

Máy tính ẩn cần đường hầm

Đây là hình ảnh số 3 trong bản phác thảo của tôi. Nhiều lần máy tính gia đình không thể truy cập trực tiếp từ internet, vì nó nằm sau tường lửa hoặc bị ẩn thông qua NAT (từ bộ định tuyến). Sau đó, bạn có thể sử dụng một đường hầm.

Tại máy tính gia đình màu xanh của bạn ( yourhost) bạn gõ:

ssh -R 5555:localhost:22 remoteuser@remotehost

trong đó 5555cổng màu xanh lá cây và 22ist cổng màu hồng trong hình ảnh.

Nếu bạn đang ở nơi làm việc, tại remotehostvà kết nối với cổng màu xanh lá cây 5555, kết nối của bạn sẽ được chuyển / chuyển sang cổng màu hồng của máy tính gia đình của bạn localhost(tức là chính máy tính gia đình màu xanh của bạn ). Bây giờ bạn phải gõ trên máy tính làm việc của bạn:

ssh -X -p 5555 homeuser@localhost firefox

sẽ khởi động firefox trên máy tính ở nhà của bạn ( yourhost) và hiển thị nó trên máy nơi bạn đã nhập lệnh này, ví dụ: máy tính làm việc của bạn ( remotehost).


1

Bạn cần chỉ định màn hình từ xa mà bạn muốn chuyển tiếp. Trên điều khiển từ xa:

DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2

Để chuyển tiếp :0màn hình.

Sau đó, trong vỏ đó (hiện đang chạy trên máy chủ của bạn), hãy chạy:

echo "$DISPLAY"

để tìm hiểu những gì là màn hình chuyển tiếp. Đó sẽ là một cái gì đó giống như localhost:10, có nghĩa là bạn cần thực hiện kết nối TCP trên cổng 6010 để kết nối với màn hình :0trên máy từ xa ( :0nghĩa là kết nối với một số ổ cắm tên miền Unix trong một cái gì đó như /tmp/.X11-unix)

Sau đó, để một ứng dụng trên máy của bạn hiển thị trên màn hình của máy chủ từ xa, việc cho họ sử dụng là một vấn đề localhost:10:

DISPLAY=localhost:10 xlogo

ví dụ.

Lưu ý rằng, đó là một đường hầm trên một đường hầm.

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.