如果要在两个 Linux 实例之间创建加密隧道,最好的选择是使用 SSH 端口**。
翻译自 Linux:使用 SSH 端口转发创建加密隧道 作者:Jack Wallen 是 X 世代思维与当下嘲笑相结合的结果。 杰克是一位寻求真理的作家,他用量子机械铅笔和不协调的声音和灵魂节奏写作。 Secure Shell (SSH) 有几个非常酷的技巧,每个技巧都提供了一个方便的功能(包裹在安全的保护层中),可以让你的生活更轻松一些。 上周,我们讨论了使用 SSH 进行密钥身份验证; 本周我们将讨论端口**,它可用于访问您可能无法直接访问的服务器。
以更高的安全性访问远程计算机。
从本地计算机到远程计算机的临时加密通道被授予。
有三种不同类型的 SSH 端口。 它们是本地(客户端通过 ssh 连接到远程主机)、远程(通过 ssh 将远程服务器连接到另一台计算机)和动态(通过 ssh 将不同的应用程序连接到多个服务器)。
端口的例子有很多,其中一些可能变得非常复杂。 因此,我们在这里只处理前两个端口(本地和远程)。 这也是您最常使用的 SSH 端口类型。
默认情况下,SSH 端口**内置于 SSH 中,因此一旦安装了 SSH,您就应该拥有使用此功能所需的一切。
话虽如此,让我向您展示 SSH 端口的工作原理。
您的 Linux 发行版可能已安装 SSH。 但是,为了移植,您还需要添加一个 SSH 服务器。 在基于 Ubuntu 的发行版上,安装 SSH 服务器的命令如下:
sudo apt-get install openssh-server -y在基于 RHEL 的发行版上,命令为:
sudo dnf install openssh-server -y安装完成后,使用以下命令在 Ubuntu 发行版上启动并启用 SSH 服务器:
sudo systemctl enable --now ssh在基于 RHEL 的发行版上,启动 Enable 命令,如下所示:
sudo systemctl enable --now sshd我们将要处理的第一个端口类型是本地端口。 假设您正在开发一个新站点,并且希望能够通过加密连接访问它。 此新站点可能位于本地网络上,也可能位于远程服务器上。 在任何情况下,您都可以使用本地端口连接到远程 SSH 服务器,从而实现从本地端口到远程端口的连接。
假设您要使用本地端口 8080 并通过 SSH 连接到 IP 地址 192168.1.端口 11,共 80 个。 为此,命令如下:
ssh -l 8080:192.168.1.11:80 localhost系统将提示您输入本地 SSH 用户密码,然后返回到命令提示符。 要验证隧道是否成功,请打开 Web 浏览器并指向:
远程站点(位于 192。168.1.11) 应出现在 Web 浏览器中,并通过 SSH 加密进行隧道传输。
只要您在终端窗口中保持“登录”状态,就可以继续使用加密隧道。 要关闭加密隧道,请返回终端窗口并键入:
这种类型的端口**可能更实用,因为它允许您通过加密隧道提供对远程计算机的访问。 假设您的 LAN 上有人需要通过 VNC 访问带有 GUI 的服务器,并且出于安全原因,您希望确保连接已加密。 当然,这需要您在服务器上正确设置 VNC,并在客户端计算机上安装 VNC 查看器。 在此示例中,我们将继续使用远程计算机的 IP 地址 192168.1.11、而客户机器位于192168.1.21。您还必须具有对客户端计算机的 SSH 访问权限。
但在此之前,您必须处理简单的 SSH 配置。 使用以下命令打开 ssh 服务器配置文件:
sudo nano /etc/ssh/sshd_config在文件底部添加以下行:
保存并关闭文件。 若要重新启动 ssh,可以使用以下命令之一:
sudo systemctl restart ssh或。
sudo systemctl restart sshd现在,让我们创建一个远程隧道。 为了在远程服务器(在我们的例子中是 192)上为 VNC(在端口 5900 上运行)创建隧道。168.1.11) 运行以下命令:
ssh -r 5900:localhost:5900 [email protected]其中 username 是您在客户端计算机上有权访问的用户名。 验证用户后,SSH 远程隧道将启动并运行。 然后,其他用户可以使用 VNC 客户端、localhost 和端口 5900 连接到服务器。
请注意,即使远程用户断开其 VNC,隧道仍会启动并运行。 若要关闭隧道,请返回到远程服务器的终端并键入 exit。
如果您想为各种目的创建加密隧道,SSH 是一个很好的选择。 一旦你掌握了如何创建这些隧道的窍门,你会发现它们在许多不同类型的场景中都很有用。