如何列出 Docker 容器
2024年3月17日安装和配置 Webmin 以以图形方式远程管理 Linux 服务器
2024年3月17日如果您稍微熟悉SSH,您就会知道可以使用它来连接到远程 Linux 系统。
使用 SSH 连接到远程系统很简单。您需要做的就是使用如下命令:
ssh user@server_IP
这将连接到默认的 SSH 端口22。如果需要,您也可以指定该端口。
现在,如果您只有一台服务器,这一切都简单明了。即使您不记得服务器的 IP 地址,也可以使用著名的终端键盘快捷键Ctrl+R 对历史记录进行反向搜索,找到您过去使用过的 SSH 命令。
但当您需要管理多台服务器时,事情就会变得复杂。我不时连接到大约十台服务器。有些是生产服务器,有些是测试服务器。
现在跟踪这些服务器并不容易。即使我可以从历史记录中找到SSH命令,也很难猜测哪个IP属于哪个服务器。
当然,我可以在 Linode、UpCloud、DigitalOcean 和 Google Cloud 上打开仪表板来获取 IP 或在本地系统上保留列表。
更好、更简单的方法是使用 SSH 配置文件。
使用 SSH 配置文件轻松连接到远程服务器
![](https://www.alaica.com/wp-content/uploads/linux-49.jpg)
SSH 配置文件允许您为不同的主机配置创建不同的配置文件。此类配置文件没有限制,您可以添加尽可能多的配置文件。
因此,如果您通过 SSH 连接到多个远程系统,创建 SSH 配置文件将是节省时间的好举措。
让我向您展示如何使用它。
第 1 步:创建 SSH 配置文件
当您安装 SSH时,您将自动创建一个 ~/.ssh 目录。这直接包含您的公钥、私钥一个known_hosts 文件。您的配置也存储在这里。
至少在 Ubuntu 上,默认情况下不会创建 SSH 配置文件。您可以使用touch 命令轻松创建此文件,如下所示:
touch ~/.ssh/config
步骤 2:在配置文件中添加 SSH 配置文件
现在您已经有了 SSH 配置文件,您可以使用 Vim或 Nano 对其进行编辑。让我向您展示您应该遵循的语法示例。
假设您连接到 IP 为 275.128.172.46 的服务器。您的用户名是 Alice,服务器用于托管您的网站。为了强化 SSH 安全性,您可以使用端口 1500 而不是默认的 SSH 端口 22。
您可以通过以下方式在 ~/.ssh/config 文件中添加所有这些信息:
Host website
Hostname 275.128.172.46
User alice
Port 1500
只需将信息保存在文件中即可。无需重新启动任何服务。
现在,不要编写这样的长命令:
ssh alice@275.128.172.46 -p 1500
您可以只使用此命令(制表符补全也有效):
ssh website
当您运行上述命令时,ssh 会在 ~/.ssh/config 中查找名为 website 的主机。如果它找到具有该名称的主机,它将获取所有相关信息并使用它来建立 SSH 连接。
您可能想知道一些事情,所以我在这里提一下:
- 输入主机信息时没有空格或制表符缩进限制。空格或制表符缩进用于使配置文件易于理解。
- 主机名可以是服务器的 IP 地址或可以在您的网络上解析的主机名。
- 所有参数(如主机名、用户和端口)都是可选的。但是,我个人建议至少保留主机名,因为大多数时候这是您需要的(并且您会忘记)。
- 如果您的 SSH 配置文件配置错误,当您尝试使用它进行 SSH 连接时将导致错误。
- 您无法在 SSH 配置中保存密码。我建议将您的公共 SSH 密钥添加到服务器以便于访问。
步骤 3:在 SSH 配置文件中添加多个配置文件
上一步让您了解了如何添加 SSH 配置文件。让我们进入下一步,在其中添加多个配置文件。
SSH 配置文件现在如下所示:
Host website
Hostname 275.128.172.46
User alice
Port 1500
Host forum-server
Hostname 275.128.172.47
User alice
Host main-server
Hostname 275.128.172.49
Host common-test-server
Hostname test-server
Host *
User root
这次,我在其中添加了四个不同的 SSH 配置文件。
您是否注意到文件末尾的Host *条目?如果配置文件未明确提及该参数,则可以使用此条目添加所有配置文件通用的参数。
因此,如果我尝试使用主服务器 SSH 配置文件,它将自动获取 root 用户。
ssh 主服务器 = ssh root@275.128.172.49
SSH 配置的顺序
ssh 配置遵循以下顺序:
- 命令行选项
- 用户的配置文件(~/.ssh/config)
- 系统范围的配置文件(/etc/ssh/ssh_config)
这意味着优先级将赋予您输入的命令,然后它会查找 ~/.ssh/config,然后查找 /etc/ssh/ssh_config。
因此,如果您想覆盖配置文件,可以使用 ssh 命令的 -o 选项来实现。
例如,如果我使用这个命令:
ssh -o "User=bob" website
它将采用用户 bob 而不是 ~/.ssh/config 中定义的用户 alice(在上一步中)。
SSH 配置还有很多内容
老实说,SSH 配置文件的内容实在太多,不可能在一篇文章中涵盖。您可以使用名称/IP 匹配、子网等。
本文的范围是向您介绍 SSH 配置并帮助您创建 SSH 配置文件以轻松连接到各种远程 Linux 系统。
您可以随时参考ssh_config 的手册页来了解有关创建 SSH 配置文件时可以使用的参数的更多信息。
我希望这个 SSH 技巧对您有所帮助。如果您已经使用 SSH 配置文件并且有一些巧妙的技巧,请在评论部分与我们其他人分享。