我有一台只有一個公共 IP 的伺服器,其存取僅限於 443 連接埠。我已經配置了一個apache反向代理來訪問https網頁。我已經配置了https://one.example.com對於網站 #1 和https://two.example.com對於網站#2。我想允許命令 ssh Three.example.com 進行 ssh 會話。我怎樣才能做到這一點?
答案1
SSH 不能像這樣進行反向代理。查看設定 VPN 伺服器並透過 VPN 存取內部網路上的主機。
例如:開放VPN通常用於此目的。
答案2
Putty 允許您設定 HTTP 代理:
也許您可以嘗試將 apache 配置為普通代理,僅允許在連接埠 22 上連接到您的主機。
答案3
你需要在apache前面有一個代理來區分SSH
和HTTPS
變化,這在概念上是完全不同的(SSH
彈出它的橫幅並等待答案,HTTPS
監聽客戶端的主動性)。
sslh就是您正在尋找的。它綁定在連接埠 443 上,並將SSH
流量重定向到 localhost:22,並將HTTPS
流量重定向到 localhost:443(或您設定的任何 IP)。需要設定的選項:
OPTIONS="--user nobody \
--pidfile $PIDFILE \
-p $Public_IP_Address_Here:443 \
--ssl 127.0.0.1:443 \
--ssh 127.0.0.1:22"