linux自定義SSH連接以簡化遠程訪問
VSole2021-11-02 08:30:18
SSH(SSH client) 是一個遠程訪問服務器的程序,它使用戶能夠在遠程主機上執行命令。它是最推薦的遠程登錄主機的方法之一,因為它旨在通過不安全的網絡在兩個不受信任的主機之間提供安全的加密通信。
SSH使用系統范圍和用戶特定(自定義)配置文件。在本教程中,我們將解釋如何創建自定義ssh配置文件并使用某些選項連接到遠程主機。SSH 客戶端配置文件
ssh客戶端配置文件的位置:
/etc/ssh/ssh_config這是默認的、系統范圍的配置文件。它包含適用于ssh客戶端計算機的所有用戶的設置。~/.ssh/config或$HOME/.ssh/config是特定于用戶的自定義配置文件。它具有適用于特定用戶的配置。因此,它會覆蓋系統范圍配置文件中的默認設置。這是我們將創建和使用的文件。
默認情況下,用戶在ssh中使用密碼進行身份驗證,但是,你可以通過5個簡單的步驟使用ssh keygen設置ssh無密碼登錄。
Note:如果~/.ssh在家目錄不存在,需要創建一下。
$ mkdir -p ~/.ssh $ chmod 0700 ~/.ssh
如何創建用戶特定的SSH配置文件
默認情況下通常不會創建此文件,因此你需要僅使用用戶的讀/寫權限創建它。
$ touch ~/.ssh/config $ chmod 0700 ~/.ssh/config
~/.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:標題是host1host1,host2:只是在命令行上使用的主機別名,它們不是遠程主機的實際主機名。- 對于一個選項,例如
ssh_option2=value1 value2, 首先用value1,然后用value2. Host *(其中*是模式 - 匹配零個或多個字符的通配符)將匹配零個或多個主機。
執行ssh命令遠程訪問host1:$ ssh host1
上面的ssh命令將執行以下操作:
- 匹配
host1配置段 - 繼續嘗試匹配
host2, 但是host1不能匹配上host2,因此此處未使用任何選項。 - 進入最后一項,
Host *,匹配所有主機。這里是一些通用的配置。但它不能覆蓋上一項中已經使用的任何選項值。
如何使用用戶特定的SSH配置文件
了解ssh客戶端配置文件的工作原理,你就可以按如下方式創建它。
編輯配置文件:
$ vi ~/.ssh/config Host fedora25 HostName 192.168.1.111 Port 22 ForwardX11 no Host centos7 HostName 192.168.1.112 Port 22 ForwardX11 no Host ubuntu HostName 192.168.1.113 Port 23 ForwardX11 yes Host * User rumenz IdentityFile ~/.ssh/id_rsa Protocol 2 Compression yes ServerAliveInterval 60 ServerAliveCountMax 20 LogLevel INFO
以上ssh配置選項的詳細說明。
HostName– 定義要登錄的真實主機名,或者,你可以使用數字IP地址User– 指定登錄的用戶。Port– 設置遠程主機上連接的端口號,默認為22. 使用遠程主機的 sshd 配置文件中配置的端口號。Protocol– 此選項按優先順序定義 ssh 應支持的協議版本。通常的值是1和2, 多個版本必須以逗號分隔。IdentityFile– 指定從中讀取用戶的DSA、Ed25519、RSA 或 ECDSA 認證身份的文件。ForwardX11– 定義X11連接是否將通過安全通道和DISPLAY集自動重定向。它有兩個可能的值yes或者no.Compression– 它用于在與遠程連接期間設置壓縮。默認是no.ServerAliveInterval– 以秒為單位設置超時間隔,如果沒有收到來自服務器的響應(或數據),ssh將通過加密通道發送消息以請求服務器的響應。默認值為0,意味著不會向服務器發送消息。ServerAliveCountMax– 設置可以在ssh未收到服務器任何響應的情況下發送的服務器活動消息的數量。LogLevel– 定義從ssh記錄消息時使用的詳細級別。允許的值包括:QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2 和 DEBUG3。默認值為 INFO。
一般我們可以用以下命令鏈接到遠程服務器
$ ssh -i ~/.ssh/id_rsa -p 22 rumenz@192.168.1.112
但是,通過使用ssh客戶端配置文件,我們可以簡單輸入以下命令:
$ ssh centos7
你可以在ssh客戶端配置手冊頁中找到更多選項和用法示例:
$ man ssh_config
VSole
網絡安全專家