使用SSH配置文件管理到各种远程服务器的SSH连接

时间:2020-03-05 15:29:44  来源:igfitidea点击:

如果我们甚至是熟悉SSH的TAD比特,那么我们就知道我们可以使用它来连接到远程Linux系统。

使用SSH连接到远程系统很简单。

我们需要做的就是使用这样的命令:

ssh Hyman@theitroad_IP

这连接到默认的SSH端口22.我们也可以指定端口,如果需要,也可以指定端口。

现在这是所有简单而简单的如果我们只有一台服务器。
即使我们不记得服务器的IP地址,我们也可以使用着名的终端键盘快捷键CTRL + R对历史进行反向搜索,并找到我们过去使用的SSH命令。

但是当我们有多个服务器管理时,事情会变得复杂。
我有大约十个服务器,我不时连接。
有些是生产服务器,有些是测试服务器。

现在保持这些服务器的轨道并不容易。
即使我可以找到历史记录的SSH命令,也很难猜到哪个IP属于哪个服务器。

当然,我可以在Linode,Upcloud,Digitalocean和Google云上打开我的仪表板,以获取IP或者在我的本地系统上保留列表。

更好,更简单的方式是使用SSH配置文件。

使用ssh配置文件轻松连接到远程服务器

SSH配置文件允许我们为不同的主机配置创建不同的配置文件。
此类配置文件没有限制,我们可以尽可能多地添加。

因此,如果通过SSH连接到多个远程系统,创建SSH配置文件将是一个很好的举措,以节省时间。

让我告诉你如何使用它。

步骤1:创建SSH配置文件

安装SSH时,我们将自动创建~/.ssh目录。

此直接包含公钥,私钥姓名为a neark_hosts文件。
配置也存储在此处。

至少在Ubuntu上,默认情况下不会创建SSH配置文件。
我们可以使用这样的触摸命令轻松创建此文件:

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 Hyman@theitroad -p 1500

我们只需使用此命令(表单完成工作):

ssh website

运行上述命令时,SSH在~/.ssh/config中查找名为的主机。
如果它找到具有该名称的主机,它会获取所有相关的信息,并使用它来进行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配置文件。

我们是否在文件末尾注意到了主机*条目吗?
如果未明确针对配置文件提到该参数,则可以使用此条目添加对所有配置文件共有的参数。

因此,如果我尝试使用主服务器SSH配置文件,它将自动携带root用户。

ssh main-server = ssh Hyman@theitroad

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。