Chuyển tiếp cổng SSH


8

Tôi muốn kết nối với máy tính của mình (cục bộ) phía sau NAT thông qua một máy chủ có thể truy cập công khai (công khai).

Về địa phương:

ssh -g -R 8000:localhost:22 user@public

Sau đó trên công khai:

ssh -p 8000 user@public 

Nhưng tôi đang nhận được error: Connection refused.

Khi tôi đăng nhập vào máy chủ công cộng, tôi có thể xác minh rằng đường hầm đang hoạt động bằng cách:

ssh -p 8000 localhost

Mà mở ssh trên máy tính cục bộ.

Tôi có nghi ngờ điều gì đó sai mà máy chủ công cộng phải hoạt động như một proxy minh bạch không? Hoặc làm thế nào để làm cho nó hoạt động như vậy.

Câu trả lời:


11

Cổng từ xa SSH chuyển tiếp sẽ mặc định liên kết với localhost / loopback cho mục đích bảo mật. Thông thường không cho phép các máy chủ khác truy cập vào các cổng chuyển tiếp của bạn.

Để ghi đè hành vi này, bạn sẽ cần thực hiện hai điều:

  • Kích hoạt GatewayPortstùy chọn trên máy chủ.
  • Chỉ định một địa chỉ liên kết hoặc *để liên kết với tất cả các địa chỉ trên máy khách.

    ssh -R \*:8000:localhost:22 user@public
    

Thoát dấu hoa thị để đảm bảo rằng vỏ của bạn không mở rộng nó.


0

Điều này trông giống như một vấn đề với các cài đặt trên máy tính từ xa công khai. Theo mặc định, sshd openssh (mà tôi đoán là cái đang được sử dụng), cài đặt GatewayPort chuyển thành không, điều này buộc chuyển tiếp cổng từ xa chỉ nghe trên localhost.

Giải pháp sau đó sẽ là chỉnh sửa / etc / ssh / sshd_config (hoặc tương đương) của bạn, đặt GatewayPort thành có hoặc cho khách hàng được xác định. Trong trường hợp bạn chọn sau này, bạn sẽ phải thay đổi yêu cầu đường hầm của mình thành một cái gì đó như -R *: 8000: localhost: 22 thay thế.

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.