无需设置路由器即可获得 ssh 访问权限的策略

无需设置路由器即可获得 ssh 访问权限的策略

我需要通过 ssh 远程管理某人的 MacBook Pro。问题是,他们会在网络之间移动,所以我不能只在他们的路由器上设置端口转发。无论他们使用哪个网络,我可以使用什么策略来获得访问权限?

我认为一种可能性可能是让他们运行一个 bash 脚本(希望通过双击桌面上的图标)这样我就可以 ssh 进入。

也许是https://github.com/progrium/localtunnel可以完成这个工作吗?

谢谢!

答案1

您需要管理的机器建立出站连接,以便到达它后面的任何防火墙/路由器。您可以考虑省去自己实现这一步的麻烦,使用类似鰤鱼

答案2

您可以在 Macbook 和您的网站之间设置 OpenVPN 吗?Macbook 可以使用以下方式作为 OpenVPN 客户端隧道布利克。您可以使用任何合适的方式在您的站点上设置 OpenVPN 服务器。在这种情况下,Macbook 将启动到您站点的 VPN 连接,并且您的 OpenVPN 服务器将为其分配 VPN 内的静态 IP 地址。然后您只需 ssh 到该 VPN IP 地址即可。

是的,localtunnel 可能有用。另一方面,OpenVPN 比 localtunnel 更加标准化,也更容易理解。如果您需要额外的访问权限,您可以使用它做更多的事情。

答案3

如果您特别需要 SSH,那么 Mac 上将其链接到您的网络的某种 VPN 客户端将允许这样做。当您需要访问时,他们会启动 VPN,VPN 会为他们分配您网络上的静态地址,然后您就可以通过 SSH 连接。

答案4

就我而言,您可以这样做,前提是:

1)你有公共 IP 和正在运行的 sshd 服务器,或者

2)如果你在内网,你可以在路由器上设置端口转发,这样端口 22 就会重定向到你的机器

如果您的情况是 1) 或 2),并且 macos 计算机正在运行 sshd 服务器。每当您想要访问 macos 时,请在 macos 上执行以下操作(从中创建脚本并将其提供给 macos 所有者):

macos$ ssh -R 65022:localhost:22 root@<yourmachine_ip_address>

它的作用是将 macos 的 sshd 服务器转发到你的端口 65022。

现在您可以简单地 ssh 到端口 65022:

yourlocalmachine$ ssh -p 65022 [email protected]

现在您应该已经在使用 macos 了。

顺便说一句:yourmachine_ip_address 可以是具有 sshd 访问权限的第三台机器,该机器由您拥有,并具有公共 IP 地址。然后在最后一步中,您可以通过以下方式连接它:

yourlocalmachine$ ssh -p 65022 root@<yourmachine_ip_address>

警告:我不是 100% 确定它是否会起作用(我还没有测试过),但它很有趣 - 我一回到家就会尝试它 :)

更新:我已经测试过了 - 它非常有效。

更新 2:在第二种情况下(当我们使用第三台机器时),GatewayPorts yes必须在该机器上的 /etc/sshd/sshd_config 文件中进行设置。

相关内容