安全外壳 (SSH) 是连接到远程服务器的最常用和最安全的方式之一。 使用 SSH 连接远程服务器很容易,但是如果您想连接不同的服务器并且经常这样做怎么办。 记住所有的 IP 地址、用户名、命令和密码变得很困难。
因此,为了解决这个问题,SSH 允许您针对不同的用例设置和使用 ssh 配置文件。 SSH 使用系统和自定义或用户特定的配置文件。 您可以自定义和配置客户端连接选项,并可以存储您连接的每个远程服务器的信息。 在今天的文章中,我们将解释如何使用 ssh 配置文件并解释一些常见的配置选项。
使用 SSH 配置文件,您可以定义和存储特定远程机器的设置。 这消除了跟踪连接远程服务器所需的每个信息(如密码、用户名、IP 地址等)的需要。
SSH 配置文件的位置是什么
正如我们之前告诉您的,SSH 中有两种类型的配置文件——系统范围和用户特定(自定义)配置文件。 他们的位置是:
- 系统范围的配置文件: 该文件主要包含适用于所有系统用户的默认信息,您可以在
/etc/ssh/ssh_config
- 用户特定或自定义配置文件: 此配置文件特定于用户和本文; 该文件将是我们的主要关注点。
每个用户都可以维护一个自定义或客户端 SSH 配置文件,它可以存储一些在建立连接时使用的常用信息。 该文件为用户保持读写格式,其他人无法访问。
客户端或自定义配置文件存储在 ~/.ssh 目录中的用户主目录中。 你会在这里找到它—— ~/.ssh/config
或者 $HOME/.ssh/config
默认情况下,用户特定的配置文件不存在。 因此,您可以使用以下命令创建它:
touch ~/.ssh/config
另外,如果找不到 ~/.ssh 目录,可以使用以下命令创建它:
mkdir -p ~/.ssh
chmod 0700 ~/.ssh
理解SSH Config文件的结构
配置文件特定于每个主机,包含与服务器连接相关的信息。 每个部分都以主机的标头定义开始,然后是连接应匹配的信息和值。 文件格式如下所示:
Host Host1 ssh_option1 Value Custom Value ssh_option2 Value Custom Value ssh_option3 Value Custom Value Host Host2 ssh_value Value Custom Value Host * Ssh_option Value Custom Value
SSH 配置文件是如何工作的
通常如果你想连接到远程服务器,你会使用这个命令:
ssh -i ~/.ssh/id_rsa -p 22 [email protected]
记住您连接的所有服务器的主机名和 IP 地址并非易事。 因此,使用配置文件,您可以使用单个命令进行连接。
ssh hostname
SSH 将使用配置文件中的信息连接到远程服务器。 因此,让我们了解配置文件的工作原理。 例如,如果您运行以下命令:
ssh Host1
SSH 将首先使用自上而下的方法将主机名与配置文件中提到的每个主机进行匹配,然后找到 Host1 头文件。 一旦 SSH 找到 Host1 的匹配项,它也会检查其他主机是否有任何其他类似的匹配项。 如果没有其他匹配项,SSH 将解释 Host1 中提到的选项值以连接服务器。
使用 SSH 配置文件
现在我们知道什么是 SSH 配置文件以及它是如何工作的。 现在让我们了解如何使用它来简化远程连接环境。
在编辑器中打开配置文件。
vi ~/.ssh/config
您可以在其中定义用户名、IP 地址和端口值。 例如:
Host TecAdmin HostName 192.167.54.19 Port 2222 Forwardx11 no Host * User tecadmin1 IdentityFile ~/.ssh/id_rsa Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel Info
文件中使用的值的说明:
- 主机名: 您要登录的远程服务器主机的 IP 地址。
- 用户: 用户名,您将以此身份登录。
- 港口: 要在远程服务器上连接的端口。
- 协议: 协议 SSH 的版本应该更喜欢。 您可以输入以逗号分隔的多个值。
- 身份文件: 包含用户的 RSA、ECDSA 和 DSA 身份验证的文件的位置。
- 转发X11: 它允许您在您的机器上转发远程服务器显示。
- 压缩: 您是否希望在远程服务器连接期间使用压缩。 如果您的连接速度较慢,打开它对您很有用
- 服务器活动间隔: 它用于为服务器连接设置一个以秒为单位的计时器,如果在给定的时间内没有收到来自服务器的响应,ssh 将发送消息请求响应。
- ServerAliveCountMax: 它设置为请求服务器响应而应发送的消息数。
- 日志级别: 它告诉日志记录时使用的详细级别。
结论
所以现在您知道了,如果您经常连接远程服务器,单个配置文件对您来说是多么有用。 您不需要记住多个主机名、IP 地址和端口。