Bạn đang yêu cầu nó lắng nghe cổng 22 cục bộ của mình và chuyển tiếp các kết nối đến cổng 8090 của hệ thống từ xa. Bạn không thể làm điều đó, vì cổng 22 cục bộ của bạn đã được máy chủ SSH cục bộ của bạn lấy.
Tôi nghĩ rằng những gì bạn đang tìm kiếm là chuyển tiếp từ xa. Thay thế -L 22:localhost:8090
bằng -R 8090:localhost:22
sẽ cho máy chủ từ xa lắng nghe trên cổng 8090 và chuyển tiếp yêu cầu đến máy chủ SSH của bạn.
Nếu bạn để kết nối chạy để bạn có thể truy cập sau từ một trang web từ xa, thì bạn sẽ muốn đảm bảo kết nối không hết thời gian do không hoạt động bằng cách thêm các tùy chọn liên quan ( -o TCPKeepAlive=yes
hoặc -o ServerAliveInterval=30
)
Vì vậy, bạn sẽ kết thúc với một cái gì đó như:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
Ngoài ra, nếu một trong các bước nhảy mạng giữa bạn và máy chủ bị hỏng tại bất kỳ thời điểm nào, kết nối sẽ bị hủy mặc dù có bất kỳ tùy chọn KeepAlive nào bạn chỉ định, vì vậy bạn có thể muốn thêm lệnh này vào inittab hoặc xem xét gói daemontools hoặc distro của bạn tương đương, để nó luôn khởi động khi khởi động và được khởi động lại khi nó thoát vì một số lý do khác sau đó tắt hệ thống (hoặc bạn có thể chạy nó từ một tập lệnh shell lặp lại vô hạn, nhưng init hoặc daemontools là giải pháp sạch hơn).