溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中如何定制SSH來(lái)簡(jiǎn)化遠(yuǎn)程訪問(wèn)

發(fā)布時(shí)間:2021-07-14 14:59:29 來(lái)源:億速云 閱讀:147 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹了Linux中如何定制SSH來(lái)簡(jiǎn)化遠(yuǎn)程訪問(wèn),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

SSH 使用系統(tǒng)全局以及用戶指定(用戶自定義)的配置文件。在本文中,我們將介紹如何創(chuàng)建一個(gè)自定義的 ssh 配置文件,并且通過(guò)特定的選項(xiàng)來(lái)連接到遠(yuǎn)程主機(jī)。

Linux中如何定制SSH來(lái)簡(jiǎn)化遠(yuǎn)程訪問(wèn)

SSH (指 SSH 客戶端)是一個(gè)用于訪問(wèn)遠(yuǎn)程主機(jī)的程序,它使得用戶能夠 在遠(yuǎn)程主機(jī)上執(zhí)行命令。這是在登錄遠(yuǎn)程主機(jī)中的最受推崇的方法之一,因?yàn)槠湓O(shè)計(jì)目的就是在非安全網(wǎng)絡(luò)環(huán)境上為兩臺(tái)非受信主機(jī)的通信提供安全加密。

SSH 使用系統(tǒng)全局以及用戶指定(用戶自定義)的配置文件。在本文中,我們將介紹如何創(chuàng)建一個(gè)自定義的 ssh 配置文件,并且通過(guò)特定的選項(xiàng)來(lái)連接到遠(yuǎn)程主機(jī)。

先決條件:

1.你必須 在你的桌面 Linux 上安裝好 OpenSSH 客戶端。

2.了解通過(guò) ssh 進(jìn)行遠(yuǎn)程連接的常用選項(xiàng)。

SSH 客戶端配置文件

以下為 ssh 客戶端配置文件:

1./etc/ssh/ssh_config 為默認(rèn)的配置文件,屬于系統(tǒng)全局配置文件,包含應(yīng)用到所有用戶的 ssh 客戶端的設(shè)置。

2.~/.ssh/config 或者 $HOME/.ssh/config 為用戶指定/自定義配置文件,這個(gè)文件中的配置只對(duì)指定的用戶有效,因此,它會(huì)覆蓋掉默認(rèn)的系統(tǒng)全局配置文件中的設(shè)置。這也是我們要?jiǎng)?chuàng)建和使用的文件。

默認(rèn)情況下,用戶是通過(guò)在 ssh 中輸入密碼來(lái)獲取驗(yàn)證的,你可以以一個(gè)簡(jiǎn)單的步驟來(lái) 使用 Keygen 來(lái)設(shè)置 ssh 無(wú)密碼登錄。

注:如果你的系統(tǒng)上不存在 ~/.ssh 目錄,那就手動(dòng)創(chuàng)建它,并設(shè)置如下權(quán)限:

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

以上的 chmod 命令表明,只有目錄屬主對(duì)該目錄有讀取、寫入和執(zhí)行權(quán)限,這也是 ssh 所要求的設(shè)置。

如何創(chuàng)建用戶指定的 SSH 配置文件

該文件并不會(huì)被默認(rèn)創(chuàng)建的,所以你需要使用具有讀取/寫入權(quán)限的用戶來(lái)創(chuàng)建它。

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

上述文件包含由特定主機(jī)定義的各個(gè)部分,并且每個(gè)部分只應(yīng)用到主機(jī)定義中相匹配的部分。

~/.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

如上格式詳解:

1.Host host1 為關(guān)于 host1 的頭部定義,主機(jī)相關(guān)的設(shè)置就從此處開始,直到下一個(gè)頭部定義 Host host2 出現(xiàn),這樣形成一個(gè)完整的定義。

2.host1 和 host2 是在命令行中使用的主機(jī)別名,并非實(shí)際的遠(yuǎn)程主機(jī)名。

3.其中,如 sshoption1=value1、sshoption2=value1 value2 等配置選項(xiàng)將應(yīng)用到相匹配的主機(jī),可以縮進(jìn)以看起來(lái)更整齊些。

4.對(duì)于 ssh_option2=value1 value2 這樣的選項(xiàng),ssh 執(zhí)行時(shí)會(huì)按照順序優(yōu)先使用 value1 的值。

5.頭部定義 Host * (其中 * 為匹配模式/通配符,匹配零個(gè)或多個(gè)字符) 會(huì)匹配零個(gè)或者多個(gè)主機(jī)。

仍舊以上述的格式為例,ssh 也是也這樣的形式類讀取配置文件的。如果你執(zhí)行 ssh 命令來(lái)訪問(wèn)遠(yuǎn)程主機(jī) host1,如下:

$ ssh host1

以上 ssh 命令會(huì)進(jìn)行一下動(dòng)作:

1.匹配配置文件中主機(jī)別名 host1,并使用頭部定義中的各個(gè)設(shè)置項(xiàng)。

2.繼續(xù)匹配下一個(gè)主機(jī)定義,然后發(fā)現(xiàn)命令行中提供的主機(jī)名沒有匹配的了,所以接下來(lái)的各個(gè)設(shè)置項(xiàng)會(huì)被略過(guò)。

3.最后執(zhí)行到最后一個(gè)主機(jī)定義 Host *, 這會(huì)匹配所有的主機(jī)。這里,會(huì)將接下來(lái)的所有設(shè)置選項(xiàng)應(yīng)用到所有的主機(jī)連接中。但是它不會(huì)覆寫之前已經(jīng)有主機(jī)定義的那些選項(xiàng)。

4.ssh host2 與此類似。

如何使用用戶指定的 shh 配置文件

在你理解了 ssh 客戶端配置文件的工作方式之后,你可以通過(guò)如下方式來(lái)創(chuàng)建它。記得使用你的服務(wù)器環(huán)境中對(duì)應(yīng)的選項(xiàng)、值 (主機(jī)別名、端口號(hào)、用戶名等)。

通過(guò)你最喜歡的編輯器來(lái)打開配置文件:

$ 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 配置文件的詳細(xì)解釋:

1.HostName - 定義真正要登錄的主機(jī)名,此外,你也可以使用數(shù)字 IP 地址,不管是在命令行或是 HostName 定義中都允許使用其中任一種。

2.User – 指定以哪一個(gè)用戶來(lái)登錄。

3.Port – 設(shè)置連接遠(yuǎn)程主機(jī)的端口,默認(rèn)是 22 端口。但必須是遠(yuǎn)程主機(jī)的 sshd 配置文件中定義的端口號(hào)。

4.Protocol – 這個(gè)選項(xiàng)定義了優(yōu)先使用 ssh 支持的協(xié)議版本。常用的值為 ‘1’ 和 ‘2’,同時(shí)使用兩個(gè)協(xié)議版本則必須使用英文逗號(hào)隔開。

5.IdentityFile – 指定一個(gè)用于讀取用戶 DSA、Ed25519、ECDSA 等授權(quán)驗(yàn)證信息的文件。

6.ForwardX11 – 定義 X11 連接是否自動(dòng)重定向到安全通道和 DISPLAY 設(shè)置。有兩個(gè)可以設(shè)置的值,即 yes 或 no。

7.Compression – 默認(rèn)值為 no,如果設(shè)置為 yes,則在連接遠(yuǎn)程主機(jī)過(guò)程中使用壓縮進(jìn)行傳輸。

8.ServerAliveInterval – 設(shè)置當(dāng)沒有收到服務(wù)器響應(yīng) (或者數(shù)據(jù)))時(shí)的超時(shí)時(shí)間,單位為秒,ssh 會(huì)通過(guò)加密信道發(fā)送信息,請(qǐng)求服務(wù)器響應(yīng)。默認(rèn)值為 0,這意味著 ssh 不會(huì)向服務(wù)器發(fā)送響應(yīng)請(qǐng)求;如果定義了 BatchMode 選項(xiàng),則默認(rèn)是 300 秒。

9.ServerAliveCountMax – 設(shè)置服務(wù)器在沒有接收到服務(wù)器的任何響應(yīng)時(shí),由服務(wù)器發(fā)送的活動(dòng)信息數(shù)量。

10.LogLevel – 定義 ssh 登錄信息的的日志冗余級(jí)別。允許的值為:QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2 和 DEBUG3,默認(rèn)為 INFO。

連接任意遠(yuǎn)程主機(jī)的標(biāo)準(zhǔn)方法是在上述兩個(gè)文件中定義第二個(gè)部分(我連接的是 CentOS 7)。一般情況下,我們這樣輸入命令:

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

然而,使用了 ssh 客戶端配置文件之后,我們還可以這樣:

$ ssh centos7

你也可以在 man 幫助頁(yè)面尋找更多的設(shè)置選項(xiàng)和使用實(shí)例:

$man ssh_config

至此,文畢。我們?cè)谖闹邢蚰憬榻B了在 Linux 中如何使用用戶指定 (自定義) 的 ssh 客戶端配置文件。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Linux中如何定制SSH來(lái)簡(jiǎn)化遠(yuǎn)程訪問(wèn)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI