1. 前言
本文主要講解如何使用ssh配置文件提升ssh遠程管理服務器的效率。
使用ssh配置文件提升遠程管理服務器效率
熟悉linux管理的用戶,就會知道SSH協(xié)議可以用來連接遠程Linux系統(tǒng)。
使用SSH連接遠程系統(tǒng)非常簡單。你所需要做的就是使用這樣的命令:
ssh user@server_IP
這將連接到SSH默認端口22。如果需要,也可以指定端口。
現(xiàn)在,如果只有一臺服務器,這就很簡單了。即使您不記得服務器的IP地址,也可以使用終端鍵盤快捷鍵Ctrl+R對歷史進行反向搜索,找到您以前使用的SSH命令。
但是當您需要管理多個服務器時,事情就變得復雜了。我有大約10個服務器,我不定時需要連接它們。有些是生產(chǎn)服務器,有些是測試服務器。
現(xiàn)在跟蹤這些服務器并不容易。即使我可以從歷史中找到SSH命令,也很難猜測哪個IP屬于哪個服務器。
當然,我可以在阿里云、百度云和騰迅云上打開我的服務器信息,以獲得IP或在本地系統(tǒng)上保存一個列表。
更好、更簡單的方法是使用SSH配置文件。
2. 使用SSH配置文件輕松連接到遠程服務器
SSH配置文件允許您為不同的主機配置創(chuàng)建不同的配置文件。這些配置文件沒有限制,您可以添加盡可能多的配置文件。
因此,如果您通過SSH連接到多個遠程系統(tǒng),創(chuàng)建SSH配置文件將是一個節(jié)省時間的好方法。
我來教你怎么用。
使用SSH配置文件輕松連接到遠程服務器
2.1 步驟1:創(chuàng)建SSH配置文件
當您安裝SSH時,您將有一個自動創(chuàng)建的ssh目錄~/.ssh。此直接包含您的公鑰、私鑰、一個known_hosts文件。您的配置也存儲在這里。
至少在Ubuntu上,SSH配置文件在默認情況下是不創(chuàng)建的。你可以很容易地使用touch命令創(chuàng)建這個文件,像這樣:
touch ~/.ssh/config
2.2 步驟2:在配置文件中添加SSH配置參數(shù)
在配置文件中添加SSH配置參數(shù)
現(xiàn)在已經(jīng)創(chuàng)建了SSH配置文件,可以使用vim或nano編輯它。讓我向您展示一個推薦的語法示例。
假設您用IP 275.128.172.46連接到一個服務器。您的用戶名是Alice,服務器用于托管您的網(wǎng)站。要加強SSH安全性,可以使用端口1500而不是默認的22端口。
您可以按以下教程向~/.ssh/config file添加以下信息:
Host website
Hostname 275.128.172.46
User alice
Port 1500
只需將信息保存在文件中。不需要重新啟動任何服務。
在配置之前,如果要登錄遠程服務器,我們會輸入以下命令:
ssh alice@275.128.172.46 -p 1500
經(jīng)過配置后,您只需要輸入以下命令取替上述命令:
ssh website
當你輸入上述命令時,ssh將會在ssh配置文件中查找website相關信息,用于建立SSH連接。
我在這里總結一下 您可能需要的一些信息:
- 輸入主機信息時不存在空格或制表符(TAB)縮進的限制。空格或制表符縮進用于使配置文件易于理解。
- 主機名可以是服務器的IP地址,也可以是可以在網(wǎng)絡上解析的主機名。
- 所有參數(shù)(如主機名、用戶和端口)都是可選的。但是,我個人建議至少保留主機名,因為這是您在大多數(shù)情況下需要的(而且您會忘記)。
- 如果您的SSH配置文件配置錯誤,當您試圖將其用于SSH連接時,它將導致一個錯誤。
- 無法在SSH配置中保存密碼。我建議將您的公共SSH密鑰添加到服務器,以便于訪問。
2.3 步驟3:在SSH配置文件中添加多個配置文件
前面的步驟向您介紹了如何添加SSH配置文件。讓我們通過在其中添加多個配置文件來進行下一步。
以下是SSH配置文件的例子:
Host website
Hostname 275.128.172.46
User alice
Port 1500
Host forum-server
Hostname 275.128.172.47
User alice
Host main-server
Hostname 275.128.172.49
Host common-test-server
Hostname test-server
Host *
User root
這一次,我在其中添加了四個不同的SSH配置文件。
您注意到文件末尾的Host *條目了嗎?如果沒有顯式地提到配置文件的參數(shù),可以使用這個條目來為所有配置文件添加一個通用參數(shù)。
因此,如果我嘗試使用主服務器SSH配置文件,它將自動獲取root用戶。
ssh main-server = ssh root@275.128.172.49
2.4 SSH配置文件的優(yōu)先順序
ssh配置如下:
- 命令行選項
- 用戶的配置文件(~/.ssh/config)
- 系統(tǒng)級配置文件(/etc/ssh/ssh_config)
這意味著~/.ssh/config 里的參數(shù)優(yōu)于/etc/ssh/ssh_config
因此,如果您想覆蓋一個概要文件,您可以使用ssh命令的-o選項來實現(xiàn)。
例如,如果我使用這個命令:
ssh -o "User=bob" website
它將接受用戶bob,而不是使用配置文件~/.ssh/config定義的alice用戶。
ssh_protocol.png
3. 更多的知識點
說實話,關于SSH配置文件的內(nèi)容太多了,無法在一篇文章中討論。您可以使用名稱/IP匹配、子網(wǎng)等等。
本文的范圍是向您介紹SSH配置并幫助您創(chuàng)建SSH配置文件,以便輕松地連接到各種遠程Linux系統(tǒng)。
您可以參考ssh_config的手冊頁,以了解更多在創(chuàng)建SSH配置文件時可以使用的參數(shù)。
我希望這個教程對您有所幫助。如果您已經(jīng)使用了SSH配置文件,并且有一些不錯的技巧,請在評論部分與我們分享。
本文已同步至博客站,尊重原創(chuàng),轉載時請在正文中附帶以下鏈接:https://www.linuxrumen.com/rmxx/1693.html