我在三个不同的网络上有三台机器。
家:
- 使用互联网但未连接到任何本地机器,使用 sudo。
工作:
- 通过 www 互联网可以使用 ssh,
- 家可以 ssh 到工作,但反之则不然
- 工作可以进行传出和传入 ssh
- 我有不这台计算机上的 sudo 访问权限
- 机器没有
iptables
安装
服务器:
- 服务器已连接到互联网
- 服务器可以 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