网站搜索

如何通过配置文件使 SSH 更易于使用


如果您全天使用 Secure Shell 登录远程 Linux 服务器,您应该考虑使用配置文件来让您的生活更轻松。就是这样。

Secure Shell (SSH) 是每个 Linux 用户在某些时候可能会使用的工具之一。通过 SSH,您可以轻松(安全地)登录远程服务器和桌面来管理、开发和检查这些计算机。

使用 SSH 非常简单:

ssh jack@192.168.1.11

或者甚至只是:

ssh 192.168.1.11

当然,您可以将 IP 地址交换为您需要访问的计算机的地址(或域)。

当您有许多使用不同配置(例如不同的用户名或 SSH 身份验证密钥)访问的计算机时,SSH 就变得不太简单。想象一下,如果您有大约 20 台不同的服务器,您每天都必须登录。您不仅必须跟踪这些服务器的 IP 地址或域,还必须记住使用了哪些用户名或身份验证密钥。仅此一点就可能变得相当压倒性。

值得庆幸的是,SSH 允许您创建一个配置文件来容纳所有这些信息。因此,您不必输入诸如 ssh olivia@192.168.1.100 -p 2222 之类的内容,而只需输入 ssh web1 即可。

让我向您展示这是如何完成的。

如何创建 SSH 配置文件

您需要什么:为此您需要的唯一东西是一台安装了 OpenSSH 的台式机以及一台或多台允许 SSH 连接的服务器。

1.创建配置文件

登录到您用于通过 SSH 连接到所有这些远程计算机的 Linux 计算机。打开终端窗口并使用显示的命令创建新的配置文件。

在 nano 的帮助下创建新的 SSH 配置文件。

由于这是一个新文件,因此它将是一个空白画布,我们可以开始向其中添加服务器配置。假设您要配置以下远程服务器:

  • web1 位于 192.168.1.100,用户为 olivia

  • db1 位于 192.168.1.101,用户为 nathan 和 SSH 密钥 ~/.ssh/id_nathan

  • docker1 位于 192.168.1.102,用户 lilly 位于端口 2222

我们的第一个条目将如下所示:

Host "web1"
     Hostname "192.168.1.100"
     User olivia

如果此时保存并关闭文件,您可以使用以下命令通过 SSH 连接到 192.168.1.100:

ssh web1

2.配置更多条目

让我们继续配置接下来的两个条目,如下所示:

Host db1
     Hostname "192.168.1.101"
     User nathan
     IdentityFile ~/.ssh/id_nathan
     PubkeyAuthentication yes

Host docker1
     Hostname "192.168.1.102"
     User lilly
     Port 2222

保存并关闭文件。现在,您可以使用以下命令将 shell 保护到这些计算机中:

ssh web1
ssh db1
ssh docker1

您可以为每个主机使用您需要的任何昵称,只是让它们容易记住,这样您就不会忘记您正在尝试访问哪台机器,并且必须不断引用配置文件来刺激您的记忆。

3.配置具体用户名

但是,假设您在所有远程服务器上使用相同的用户名,但在本地计算机上使用不同的用户名。例如,您的本地计算机用户名可能是 jack,但您已在所有远程服务器上创建了 admin 用户。您可以为所有这些服务器创建一个条目,并在 IP 地址中使用通配符,如下所示:

Host 192.168.1.*
User admin

上面的配置将放置在配置文件的顶部。

4. 配置 SSH 密钥身份验证的单独条目

然后,您可以根据需要单独配置每个服务器,而忽略“用户”选项。例如,如果 192.168.1.200 和 192.168.1.201 的两台服务器都使用 SSH 密钥身份验证,您可以配置如下条目:

Host web2
     Hostname 192.168.1.200
     IdentityFile ~/.ssh/id_admin
     PubkeyAuthentication yes

Host web3
     Hostname 192.168.1.201
     IdentityFile ~/.ssh/id_admin
     PubkeyAuthentication yes

因为我们将用户 admin 应用到 IP 地址方案 192.168.1.x 上的整个计算机范围,所以该用户名将应用到所有连接。您还可以根据需要添加用户配置行来覆盖该全局配置。

SSH 配置文件允许使用其他几个选项(所有这些选项都可以在官方 SSH 配置文档中阅读),但上面显示的这些示例应该是您使用 SSH 配置文件所需的一切。

这就是使用 SSH 配置文件来帮助您更轻松地使用 Secure Shell 进行远程访问的全部内容。