Tôi đã quản lý để làm điều này ngay cả khi không có máy chủ HTTP (theo nghĩa nghiêm ngặt):
tất cả những gì tôi đã sử dụng là node.js ở cả hai phía máy khách (một máy khách ssh một máy chủ ssh) cũng như firebase để lưu trữ bộ đệm (được chuyển đổi thành chuỗi) được đọc từ luồng TCP và theo hướng dẫn chung từ câu trả lời / nhận xét của @ Putnik, ( ghi nhớ để sử dụng allowHalfOpen
tùy chọn), chương trình hoạt động chỉ với một chút chậm trễ. Về mặt đồ họa, kết nối trông như thế này:
client1 (ssh client) <=> localhost1 (tcp, máy chủ fake-ssh)
client2 (máy chủ ssh) <=> localhost2 (tcp, fake-ssh client (s))
localhost1 <=> firebase (hoặc máy chủ HTTP thực) <=> localhost2
Xin lưu ý rằng từ localhost đến firebase / server, người ta có thể mã hóa / giải mã bộ đệm theo ý muốn - miễn là chúng là một cặp chuyển đổi không mất dữ liệu. Do đó, liên kết đến câu hỏi khác trong câu trả lời (sử dụng HTTP CONNECT
) của @ RedGrittyBrick cũng sẽ hoạt động miễn là có đủ đặc quyền trên máy chủ đó và có khả năng nó có thể nhanh hơn.
Tất nhiên có rất nhiều thứ trong mã có thể được cải thiện nhưng tôi tin về mặt bảo mật, điều này không nên bảo mật hơn kết nối trực tiếp bằng openSSH. Vui long sửa cho tôi nêu tôi sai.