在家中本地网络中办公室的 SSH PC

在家中本地网络中办公室的 SSH PC

我的办公室有一个默认网关,其后面是一个本地网络,为包括我在内的所有计算机分配本地 IP 地址。

我在安装了 Ubuntu 的办公室 PC 上拥有管理员权限,并且周末必须通过 SSH 访问计算机。

在办公室,我没有公共 IP,但我总是从 DHCP 获得相同的本地 IP。尽管我无法在主防火墙中设置端口转发,但我可以自由地在我的电脑中设置我喜欢的任何软件。

我的家用计算机也运行 Linux,获得了一个公共 IP。请注意,我无法安装类似 Team Viewer 的软件。

我该如何解决我的问题?

答案1

这很容易:

  1. [从办公室机器执行] 设置连接 Office -> Home(因为 Home 有公共 IP)。这将设置从您的办公室机器到家的反向隧道。

    ssh -CNR 19999:localhost:22 homeuser@home

  2. [从家用计算机执行] 从家里连接到您的办公室。这将使用步骤 1 中的隧道。

    ssh -p 19999 officeuser@home

请确保 ssh 隧道不违反您公司的政策,因为有时您可能会因为这种连接模式而被解雇(例如,我的雇主会因此解雇我)。

附注在第一步中,您可能想要使用autossh类似的东西,这样在网络不稳定的情况下您的隧道连接将自动恢复。

答案2

假设您可以控制家庭网络,并且您设置了固定的内部IP地址(例如基于家庭PC的MAC地址),那么您可以在家庭路由器上打开一个端口(例如4321)来转发也可以通过 4321 连接到您的 PC。

在家里监听sshd该端口。

在本地创建一个新用户,因为您(当然)不想在您不在办公室时使用普通的公钥/私钥对在办公室计算机上运行。在办公室计算机上创建公钥/私钥对,并将公钥复制给家庭计算机上的新用户。

假设您的家庭IP(由您的提供商提供给您的路由器)相对稳定,并且您可以在某个地方发布此家庭IP地址(例如通过将其上传到某个网站),您的办公室PC可以在其中检索这样,您的办公室 PC 就可以建立反向 ssh 隧道。

您的办公室 PC 应定期(例如每 5 分钟)检索家庭 IP,如果 IP 已更改,则设置反向 ssh 隧道:

ssh -p 4321 -N -R 12345:localhost:22 reverse@home-ip

您可以使用 ssh 连接到本地端口 12345 以连接到您的办公室 PC:

ssh -p 12345 officelogin@localhost

相关内容