![无需设置路由器即可获得 ssh 访问权限的策略](https://linux22.com/image/574565/%E6%97%A0%E9%9C%80%E8%AE%BE%E7%BD%AE%E8%B7%AF%E7%94%B1%E5%99%A8%E5%8D%B3%E5%8F%AF%E8%8E%B7%E5%BE%97%20ssh%20%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%E7%9A%84%E7%AD%96%E7%95%A5.png)
我需要通过 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 文件中进行设置。