在 3 台计算机之间建立连接

在 3 台计算机之间建立连接

我在三个不同的网络上有三台机器。

  • 使用互联网但未连接到任何本地机器,使用 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

相关内容