我有 3 台機器在 3 個不同的網路上。
家:
- 有互聯網但未連接到任何本地計算機,使用 sudo。
工作:
- 透過 www 互聯網可以使用 ssh,
- 家可以 ssh 到工作,但反之則不然
- 工作可以進行傳出和傳入 ssh
- 我有不在此電腦上進行 sudo 訪問
- 機器沒有
iptables
安裝
伺服器:
- 伺服器已連接至 www 網際網路
- 伺服器可以 ssh 到工作,但反之則不然
- 伺服器只能進行外發 ssh。
- 我在這台電腦上有 sudo 存取權限。
所以現在網路可以這樣做:
主頁 -> 工作 <- 伺服器
鑑於此配置我如何得到家連接到伺服器?所有三台機器都運行 Ubuntu。我只能透過命令列存取所有三台機器。
答案1
此 ssh 解決方案不需要 sudo。
首先,在 SERVER 上的命令列,設定從 WORK 機器到 SERVER 的遠端連接埠轉送:
SERVER$ ssh -f -N -R 23456:SERVER:22 workuser@WORK
然後,只要該進程正在運行,您就應該能夠執行以下操作:
HOME$ ssh -t workuser@WORK ssh -p23456 serveruser@localhost
也就是說,從 HOME,您應該能夠透過 WORK 連接,然後透過 ssh 隧道連接到 SERVER 電腦。
應該可以使用 :23456 指定 ssh 應偵聽 WORK 計算機上的所有接口,但這對我不起作用,可能是因為 GatewayPorts 被禁用。如果它有效,第二個指令可以簡化為:
HOME$ ssh -p23456 serveruser@WORK