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