如何使用 SSH 跳转主机访问远程服务器?
简介
远程服务器,也称为云服务器或虚拟专用服务器 (VPS),是托管在异地的计算机器,通常由第三方提供商提供。它们可以存储和处理大量数据,并且可以从世界任何地方通过互联网连接进行访问。近年来,远程服务器因其可扩展性和成本效益而越来越受欢迎。
然而,由于远程服务器距离较远且无法直接连接到本地网络,访问远程服务器可能颇具挑战性。这时,SSH 跳转主机就派上用场了:它们充当本地计算机和远程服务器之间的安全中介,让您可以安全地访问服务器,而不会泄露任何敏感信息。
设置 SSH 跳转主机
SSH 跳转主机提供了一种安全的方式来访问无法从本地计算机直接访问的远程服务器。要使用跳转主机,您必须首先在 Linux 机器上设置它并进行正确配置。
在 Linux 机器上设置跳转主机的步骤
要在 Linux 机器上创建 SSH 跳转主机,您需要遵循以下步骤 -
首先,确保您的 Linux 机器已安装 OpenSSH。
接下来,导航到"/etc/ssh"目录,并使用命令"sudo cp sshd_config sshd_config_backup"创建"sshd_config"文件的备份副本。
您可以通过运行命令"sudo apt-get install openssh-server"来执行此操作。
$ cd /etc/ssh/ $ sudo cp sshd_config sshd_config_backup
然后使用您喜欢的文本编辑器(例如 Nano 或 Vim)编辑 `sshd_config` 文件。查找以"#Port 22"开头的行,删除 # 符号,然后将 22 更改为其他端口号(例如 1234)。
在"sshd_config"末尾添加这两行 -
AllowAgentForwarding yes GatewayPorts yes
保存并关闭文件。
使用命令"sudo systemctl restart ssh"重新启动 SSH。
现在,您的 Linux 计算机上已设置好 SSH 跳转主机。
如何配置跳转主机的防火墙设置
在 Linux 计算机上创建 SSH 跳转主机后,确保其防火墙设置正确配置至关重要。要允许通过端口 1234(或您选择的任何端口)进行访问,请按照以下步骤操作 - ...
sudo apt-get install ufw
使用以下命令允许端口 1234 的传入连接 -
sudo ufw allow 1234/tcp
使用以下命令启用防火墙 -
sudo ufw enable
运行以下命令验证您的规则是否已应用 -
sudo ufw status numbered
这将显示所有防火墙规则的编号列表,以及它们对应的状态和端口。按照这些步骤,您现在应该已经在 Linux 计算机上设置了跳转主机,并且其防火墙设置已正确配置。
配置远程服务器以通过跳转主机访问
配置远程服务器以通过跳转主机访问的步骤
在使用跳转主机远程访问服务器之前,我们需要配置服务器,使其允许来自跳转主机的连接。为此,我们需要编辑远程服务器上的 SSH 配置文件。首先,使用您的用户名和密码通过 SSH 连接到远程服务器。
然后使用您喜欢的文本编辑器打开位于 /etc/ssh/sshd_config 的 SSH 配置文件。在此配置文件中,搜索包含"AllowUsers"或"AllowGroups"的行。
如果文件中包含这两行中的任何一行,请在其后添加您的用户名或组名,并用空格分隔。接下来,搜索包含"PermitRootLogin"的行并将其值设置为"no"。
PermitRootLogin no
这是一项重要的安全措施,因为它可以确保没有人能够直接以 root 身份登录您的远程服务器。您可以稍后根据需要使用 sudo 权限。
在 Vim 中输入":wq"或在 Nano 中输入":x"保存并退出 SSH 配置文件。运行"systemctl restart ssh"重启远程服务器上的 SSH 服务。
如何将跳转主机的公钥添加到远程服务器的授权密钥文件中
下一步是将跳转主机的公钥添加到远程服务器的授权密钥文件中。这将允许我们在使用 SSH 通过跳转主机访问远程服务器时进行身份验证。
首先,如果您尚未生成 RSA 密钥对,请在本地计算机上生成。您可以通过运行以下命令来执行此操作:-
ssh-keygen -t rsa
生成密钥对后,使用以下命令将其公钥 (id_rsa.pub) 复制到剪贴板:-
pbcopy < ~/.ssh/id_rsa.pub
接下来,使用您的用户名和密码通过 SSH 连接到远程服务器。
连接后,在远程服务器的 ~/.ssh 目录中创建一个名为 authorized_keys 的新文件(如果该文件尚不存在)。使用您常用的文本编辑器打开此文件,并从剪贴板粘贴跳转主机的公钥。
保存并退出 authorized_keys 文件。现在,您可以关闭与远程服务器的 SSH 连接,并测试通过跳转主机访问它。
通过跳转主机连接到远程服务器
使用 SSH 和跳转主机作为中介连接到远程服务器的步骤
设置跳转主机并配置远程服务器后,您现在可以使用 SSH 和跳转主机作为中介连接到远程服务器。为此,请在本地计算机上打开终端并输入以下命令:
ssh -J [user@]jump-host [user@]destination-host
将 ```[user@]jump-host`` 替换为跳转主机的用户名和主机名或 IP 地址。将 ```[user@]destination-host`` 替换为远程服务器的用户名、主机名或 IP 地址。
如何使用 SSH 端口转发说明
SSH 端口转发允许您通过加密的 SSH 连接将网络流量从一台计算机转发到另一台计算机。这对于访问远程服务器上运行的、无法从本地计算机直接访问的服务非常有用。
要使用 SSH 设置端口转发,您需要使用 `-L` 选项,后跟两个用冒号分隔的参数。第一个参数指定本地计算机上将要转发的端口号。
第二个参数指定网络流量应转发到远程计算机上的哪个位置。例如,如果您想将流量从本地计算机的 8080 端口转发到远程 Web 服务器(192.168.1.100)的 80 端口,可以使用以下命令 -
ssh -L 8080:192.168.1.100:80 [user@]jump-host
这将在您的本地计算机和跳转主机之间创建一个加密隧道,从本地计算机 8080 端口转发的流量将通过此隧道发送,然后转发到远程 Web 服务器(192.168.1.100)的 80 端口。
使用 SSH 的端口转发功能非常强大,但了解这样做的安全隐患非常重要。务必确保您信任要将流量转发到的计算机,并考虑使用 VPN 或防火墙等额外的安全措施。
结论
在本指南中,我们讨论了如何使用 SSH 跳转主机访问远程服务器。我们首先解释了什么是远程服务器以及为什么需要访问它。
接下来,我们介绍了 SSH 跳转主机的概念及其用途。然后,我们提供了在 Linux 计算机上设置 SSH 跳转主机、配置远程服务器以通过跳转主机访问,以及如何使用 SSH 和端口转发通过跳转主机连接到远程服务器的分步说明。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

