通过 SSH 连接远程系统和通过 VPN 连接远程网络有什么区别?
例如,如果我可以通过 SSH 连接到另一个网络上的远程机器,为什么还需要 VPN?
答案1
AVPN(虚拟专用网络)在您的机器上创建新的网络级连接。通常这样做是出于隐私/加密原因。该机器上的所有网络流量现在都将使用 VPN,而不是原始/普通网络连接。
SSH(安全外壳)只是一种远程连接到另一台机器上的终端/命令行的方法。因此,如果您使用 VPN 进行网络连接,那么仅凭这一点无法将您连接到远程机器;SSH 是用于将您连接到另一台机器的协议/方法。
现在说了这么多,我想我对你的问题有了更多的理解:既然 VPN 意味着隐私/安全,为什么在使用 VPN 时需要明确使用 SSH。我的意思是,如果你 100% 信任你的 VPN 连接,你可以简单地使用非安全远程登录甚至是普通的FTP, 正确的?
嗯,SSH 和 VPN 结合使用可以确保更高级别的安全性。这意味着,即使 VPN 被攻破,攻击者/探测者仍需要渗透 SSH 连接才能获取任何有价值的信息。
另一方面,并非所有 VPN 都是为深度隐私/安全而构建的。有些 VPN 只是通往其他网络的私人路由,其他用户也会访问这些网络。在这种情况下,VPN 与LAN(局域网)其中 VPN 对等连接与其他 VPN 对等连接具有同等的访问权限。
归根结底,这一切都与目的、隐私和可信度有关。如果你 100% 确信你信任你的 VPN,并且不认为它会带来数据泄露风险,那么你可以随心所欲地使用它,而不需要 SSH 提供的额外安全层。但一般来说,主动安全总比被动后悔要好。即使在安全的 VPN 中使用 SSH 也是可行的方法。更不用说,SSH 如今如此普遍,几乎没有理由不是使用它。哎呀,人们往往会忘记 Telnet 没有 SSH 的时代。
答案2
VPN 通常通过在您的系统上创建虚拟网络适配器来工作。VPN 软件会拦截进入此虚拟网络适配器的流量,然后对其进行加密和处理,并将其发送到 VPN 服务器端点,然后可能会进一步转发,例如通过内部企业路由器。对于应用程序来说,VPN 与标准网络适配器没有什么不同。
SSH 转发是指您的 SSH 客户端监听 127.0.0.1 上的端口,然后使用与您的 shell 相同的加密方法将进入该本地端口的数据转发到服务器上的端口。如果远程服务器的端口上没有任何内容在监听,则不会发生任何事情。
以下至少列出了一些显著的差异:
SSH 只能转发单个端口(当然,它可以转发多个端口,但您必须全部指定)。这意味着,如果您想安全地访问远程主机上的多个服务,每个服务都在一个唯一的端口上运行,您必须为每个服务设置和维护转发。
典型的 SSH 客户端不支持指定要连接的多个服务器,而是尝试第一个可用的服务器。例如,OpenVPN 中内置了这种功能。
SSH 本身不支持隧道 UDP。
由于 VPN 对操作系统来说就像是一个网络适配器,因此可以指定涉及 VPN 适配器的路由。因此,操作系统可以通过 VPN 适配器发送任何发往子网的流量。这可以让你的所有互联网流量都通过 VPN,以进行过滤或保护隐私。SSH 无法轻松做到这一点。
第 2 层 VPN 可以与广播流量一起工作,允许 DHCP、多播、ICMP 和 Windows SMB 相关流量等通过它们工作。