技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

Linux下定制SSH來簡化遠程訪問教程

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2017-11-10 18:58┆點擊:

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

Linux下定制SSH來簡化遠程訪問教程 三聯(lián)

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

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

  先決條件:

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

  2.了解通過 ssh 進行遠程連接的常用選項。

  SSH 客戶端配置文件

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

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

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

  默認情況下,用戶是通過在 ssh 中輸入密碼來獲取驗證的,你可以以一個簡單的步驟來 使用 Keygen 來設(shè)置 ssh 無密碼登錄。

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

1

2

 

$ mkdir -p ~/.ssh

$ chmod 0700 ~/.ssh

 

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

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

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

1

2

 

$ touch ~/.ssh/config

$ chmod 0700 ~/.ssh/config

 

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

  ~/.ssh/config 文件的常見格式如下,其中所有的空行和以 ‘#’ 開頭的行為注釋:

1

2

3

4

5

6

7

8

9

10

 

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 的頭部定義,主機相關(guān)的設(shè)置就從此處開始,直到下一個頭部定義 Host host2 出現(xiàn),這樣形成一個完整的定義。

  2.host1 和 host2 是在命令行中使用的主機別名,并非實際的遠程主機名。

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

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

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

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

1

 

$ ssh host1

 

  以上 ssh 命令會進行一下動作:

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

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

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

  4.ssh host2 與此類似。

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

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

  通過你最喜歡的編輯器來打開配置文件:

1

 

$ vi ~/.ssh/config

 

  并定義必要的部分:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

 

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 配置文件的詳細解釋:

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

  2.User – 指定以哪一個用戶來登錄。

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