问题陈述:如何通过安全网络(例如 VPN/隧道)使用 SSH 连接到我的 Digital Ocean Cloud VPS?
详细背景:
1.我的服务器:一个 CentOS 7 Droplet,在 eth0 上有公共 IP,在 eth1 上有私有 IP
2。SSH 客户端 (通过 SSH 密钥):Windows 7 或 VirtualBox CentOS 7 VM 上的 MobaXterm
情况? 我家用电脑的公共 WAN IP 地址每次我重启路由器时都会发生变化,或者根据其 DHCP 策略发生变化(以先到者为准)
如何设置一种机制,让我能够连接到 VPS 防火墙中永久列入白名单的 IP 或 FQDN(类似于 AWS 安全组) 然后启动 SSH 会话,而无需为 VPN 目的设置第二个 Linux VPS?下面的流程应该会更清楚:
SSH Clients from my PC(_Random Src IPs_) --> VPN / Tunnel (_1+ IPs white-listed in VPS Firewall_) -->[SSH] --> VPS
选项不可能
- 同一 VPS 上的 VPN 服务器(成为单点故障)
- 第二个 Linux VPS 设置如下Jumpbox | 堡垒主机因为第一个 VPS 不是生产级服务器,而且维护 2 个 VPS 对我来说在经济上不可行。
可能的选择
- 可靠的 VPN 服务,可供个人免费使用。
- SSH 隧道或任何其他替代方案。
是否需要更多背景信息,请告诉我,并指导我实现这一目标的理想方法。
答案1
为此,将 SSH 服务器配置为仅监听本地主机,并将如下内容放入/etc/tor/torrc
:
HiddenServiceDir /var/lib/tor/ssh_hidden_service/
HiddenServicePort 22 127.0.0.1:22
HiddenServiceVersion 3 # If you're using tor 0.3.2 or above.
然后重启 Tor。你的洋葱主机名将会生成,你可以在 中找到/var/lib/tor/ssh_hidden_service/hostname
。
配置你的 SSH 客户端以使用 Tor将类似这样的内容放入~/.ssh/config
:
Host mydomain
HostName mydomain.com
CheckHostIP no
ProxyCommand connect-proxy -4 -S localhost:9050 $(tor-resolve %h localhost:9050) %p
您需要安装 connect-proxy 软件包。或者您可以使用netcat 作为代理命令。