SSH(指 SSH 客户端)是一个用于访问远端 WordPress 主机的程式,它使得使用者能够 在远端 WordPress 主机上执行命令。这是在登入远端 WordPress 主机中的最受推崇的方法之一,因为其设计目的就是在非安全互联网环境上为两台非受信 WordPress 主机的通讯提供安全加密。
SSH 使用系统全域性以及使用者指定(使用者自定义)的配置档案。在本文中,我们将介绍如何建立一个自定义的 ssh 配置档案,并且通过特定的选项来连线到远端 WordPress 主机。
先决条件:

你必须 在你的桌面 Linux 上安装好 OpenSSH 客户端。
了解通过 ssh 进行远端连线的常用选项。

SSH 客户端配置档案
以下为 ssh 客户端配置档案:

/etc/ssh/ssh_config 为预设的配置档案,属于系统全域性配置档案,包含应用到所有使用者的 ssh 客户端的设定。
~/.ssh/config 或者 $HOME/.ssh/config 为使用者指定/自定义配置档案,这个档案中的配置只对指定的使用者有效,因此,它会覆盖掉预设的系统全域性配置档案中的设定。这也是我们要建立和使用的档案。

预设情况下,使用者是通过在 ssh 中输入密码来获取验证的,你可以以一个简单的步骤来 使用 Keygen 来设定 ssh 无密码登入。
注:如果你的系统上不存在 ~/.ssh 目录,那就手动建立它,并设定如下许可权:

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh

以上的 chmod 命令表明,只有目录属主对该目录有读取、写入和执行许可权,这也是 ssh 所要求的设定。
如何建立使用者指定的 SSH 配置档案
该档案并不会被预设建立的,所以你需要使用具有读取/写入许可权的使用者来建立它。

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

上述档案包含由特定 WordPress 主机定义的各个部分,并且每个部分只应用到 WordPress 主机定义中相匹配的部分。
~/.ssh/config 档案的常见格式如下,其中所有的空行和以 ‘#’ 开头的行为注释:

Host host1
ssh_option1=value1
ssh_option2=value1 value2
ssh_option3=value1
Host host2
ssh_option1=value1
ssh_option2=value1 value2
Host *
ssh_option1=value1
ssh_option2=value1 value2

如上格式详解:

Host host1 为关于 host1 的头部定义,WordPress 主机相关的设定就从此处开始,直到下一个头部定义 Host host2 出现,这样形成一个完整的定义。
host1 和 host2 是在命令列中使用的 WordPress 主机别名,并非实际的远端 WordPress 主机名。
其中,如 sshoption1=value1 、 sshoption2=value1 value2 等配置选项将应用到相匹配的 WordPress 主机,可以缩排以看起来更整齐些。
对于 ssh_option2=value1 value2 这样的选项,ssh 执行时会按照顺序优先使用 value1 的值。
头部定义 Host * (其中 * 为匹配模式/万用字元,匹配零个或多个字元) 会匹配零个或者多个 WordPress 主机。

仍旧以上述的格式为例,ssh 也是也这样的形式类读取配置档案的。如果你执行 ssh 命令来访问远端 WordPress 主机 host1,如下:

$ ssh host1

以上 ssh 命令会进行一下动作:

匹配配置档案中 WordPress 主机别名 host1,并使用头部定义中的各个设定项。
继续匹配下一个 WordPress 主机定义,然后发现命令列中提供的 WordPress 主机名没有匹配的了,所以接下来的各个设定项会被略过。
最后执行到最后一个 WordPress 主机定义 Host *, 这会匹配所有的 WordPress 主机。这里,会将接下来的所有设定选项应用到所有的 WordPress 主机连线中。但是它不会覆写之前已经有 WordPress 主机定义的那些选项。
ssh host2 与此类似。

如何使用使用者指定的 SSH 配置档案
在你理解了 ssh 客户端配置档案的工作方式之后,你可以通过如下方式来建立它。记得使用你的站群服务器环境中对应的选项、值 (WordPress 主机别名、埠号、使用者名称等) 。
通过你最喜欢的编辑器来开启配置档案:

$ vi ~/.ssh/config

并定义必要的部分:

Host fedora25
HostName 192.168.56.15
Port 22
ForwardX11 no
Host centos7
HostName 192.168.56.10
Port 22
ForwardX11 no
Host ubuntu
HostName 192.168.56.5
Port 2222
ForwardX11 yes
Host *
User tecmint
IdentityFile ~/.ssh/id_rsa
Protocol 2
Compression yes
ServerAliveInterval 60
ServerAliveCountMax 20
LogLevel INFO

以上 ssh 配置档案的详细解释:

HostName – 定义真正要登入的 WordPress 主机名,此外,你也可以使用数字 IP 地址,不管是在命令列或是 HostName 定义中都允许使用其中任一种。
User – 指定以哪一个使用者来登入。
Port – 设定连线远端 WordPress 主机的埠,预设是 22 埠。但必须是远端 WordPress 主机的 sshd 配置档案中定义的埠号。
Protocol – 这个选项定义了优先使用 ssh 支援的协议版本。常用的值为 ‘1’ 和 ‘2’,同时使用两个协议版本则必须使用英文逗号隔开。
IdentityFile – 指定一个用于读取使用者 DSA 、 Ed25519 、 ECDSA 等授权验证资讯的档案。
ForwardX11 – 定义 X11 连线是否自动重定向到安全通道和 DISPLAY 设定。有两个可以设定的值,即 yes 或 no 。
Compression – 预设值为 no,如果设定为 yes,则在连线远端 WordPress 主机过程中使用压缩排行传输。
ServerAliveInterval – 设定当没有收到站群服务器响应(或者资料))时的超时时间,单位为秒,ssh 会通过加密通道传送资讯,请求站群服务器响应。预设值为 0,这意味著 ssh 不会向站群服务器传送响应请求;如果定义了 BatchMode 选项,则预设是 300 秒。
ServerAliveCountMax – 设定站群服务器在没有接收到站群服务器的任何响应时,由站群服务器传送的活动资讯数量。
LogLevel – 定义 ssh 登入资讯的的日志冗余级别。允许的值为:QUIET 、 FATAL 、 ERROR 、 INFO 、 VERBOSE 、 DEBUG 、 DEBUG1 、 DEBUG2 和 DEBUG3,预设为 INFO 。

连线任意远端 WordPress 主机的标准方法是在上述两个档案中定义第二个部分(我连线的是 CentOS 7)。一般情况下,我们这样输入命令:

$ ssh -i ~/.ssh/id_rsa -p 22 tecmint@192.168.56.10

然而,使用了 ssh 客户端配置档案之后,我们还可以这样:

$ ssh centos7

你也可以在 man 帮助页面寻找更多的设定选项和使用例项:

$man ssh_config

至此,文毕。我们在文中向你介绍了在 Linux 中如何使用使用者指定 (自定义) 的 ssh 客户端配置档案。通过下方的反馈表单来写一些与本文的相关的想法吧。

原文连结:https://linux.cn/article-8306-1.html?utm_source=index&utm_medium=more