前言
大家好,這里是浩道linux,主要給大家分享linux、python、網(wǎng)絡(luò)通信相關(guān)的IT知識(shí)平臺(tái)。
今天浩道跟大家分享運(yùn)維工作中常常被大家忽略的SSH會(huì)話(huà)中斷背后的一些知識(shí)點(diǎn)!
相信大家在工作中常常遇到通過(guò)SSH連接到Linux服務(wù)器一段時(shí)間后會(huì)自動(dòng)斷開(kāi)了,但是這時(shí)候大家往往不去追究其中的原理,只是習(xí)慣性在CRT等連接工具中的會(huì)話(huà)窗口按下回車(chē)鍵再次連接了。本文就讓你看看這個(gè)斷開(kāi)背后的原理,以及弄清楚其背后的原理后告訴你為什么不能設(shè)置永不斷開(kāi)!
1. 概覽
有多少次,我們想要保持SSH會(huì)話(huà)一直處于連接狀態(tài),以保持應(yīng)用程序運(yùn)行,或者只是避免在返回我們使用的SSH窗口時(shí)感到沮喪。在本教程中,你將獲得如何通過(guò)防止SSH會(huì)話(huà)超時(shí),直到你關(guān)閉終端窗口。
2. 為什么SSH會(huì)關(guān)閉連接?
我們?yōu)榱耸褂肧SH登錄到服務(wù)器上,目的服務(wù)器上的守護(hù)進(jìn)程(sshd)一定是保持運(yùn)行狀態(tài)。如果SSH客戶(hù)端一段時(shí)間沒(méi)有發(fā)送到目的服務(wù)器,服務(wù)器會(huì)在超過(guò)一段時(shí)間后關(guān)閉連接。
為了防止關(guān)閉SSH連接,我們可以在客戶(hù)端或者服務(wù)端進(jìn)行配置。
3. 設(shè)置配置文件
有幾個(gè)配置文件可以修改,以保持SSH會(huì)話(huà)的連接,避免超時(shí)。要看是從客戶(hù)端配置還是服務(wù)端配置。
3.1 客戶(hù)端配置
客戶(hù)端文件位置
$HOME/.ssh/config
如果我們使用使用cat $HOME/.ssh/config,可能會(huì)得到一個(gè)錯(cuò)誤信息 “no file found”。
$ cat $HOME/.ssh/config cat: /.ssh/config: No such file or directory
如果我們看到這個(gè)錯(cuò)誤消息,意味著我們需要手動(dòng)創(chuàng)建這個(gè)配置文件。如果.ssh目錄不存在,首先創(chuàng)建.ssh目錄,使用命令mkdir $HOME/.ssh來(lái)創(chuàng)建目錄,如果提示目錄已經(jīng)存在,我們將會(huì)看到一個(gè)消息 “File exists”,請(qǐng)忽略即可;如果目錄創(chuàng)建成功,我們不會(huì)看到任何輸出信息。
$ mkdir $HOME/.ssh然后創(chuàng)建配置文件touch $HOME/.ssh/config。
$ touch $HOME/.ssh/config
一旦我們創(chuàng)建好配置文件,我們還需要使用chmod修改配置文件的權(quán)限,不能讓所有人都可以編輯這個(gè)配置文件。
$ chmod 600 $HOME/.ssh/config
現(xiàn)在我們可以任何編輯器來(lái)編輯這個(gè)配置文件了,比如nano或者vim,在終端使用vim $HOME/.ssh/config打開(kāi)配置文件。
現(xiàn)在讓我們來(lái)添加一些配置信息到配置文件里面。在vim按i進(jìn)入編輯模式,然后輸入下面的內(nèi)容:
Host example Hostname example.com ServerAliveInterval 240
上面的配置信息,僅在SSH會(huì)議連接到example這個(gè)域的時(shí)候才會(huì)生效。
ServerAliveInterval設(shè)置了客戶(hù)端在發(fā)送保持連接信號(hào)之前的等待時(shí)間。
然后按ESC鍵,進(jìn)入vim的命令模式,連續(xù)輸入:wq保存退出vim編輯器。
另外可以把example換成*來(lái)指定所有的域的配置
Host * ServerAliveInterval 240
我們可以使用上面同樣的步驟來(lái)編輯和保存配置文件。
3.2. 服務(wù)端配置文件
在某些情況下,我們可能可以訪問(wèn)服務(wù)器上的配置文件。如果是這種情況,我們可以配置何時(shí)希望服務(wù)器關(guān)閉SSH連接。
在服務(wù)器上編輯配置文件的過(guò)程與客戶(hù)端配置文件類(lèi)似,但有一些不同。
首先,服務(wù)器端配置文件的文件位置是/etc/ssh/sshd_config;
現(xiàn)在我們使用 vim 把ClientAliveInterval添加到配置文件,注意,這里是"Client"而不是"Server",跟上面客戶(hù)端的配置是不一樣的。
ClientAliveInterval 60
ClientAliveInterval是以秒為單位指定的超時(shí)間隔。如果服務(wù)器從客戶(hù)端接收數(shù)據(jù)的時(shí)間超過(guò)了超時(shí)間隔,則服務(wù)器將向客戶(hù)端發(fā)送請(qǐng)求響應(yīng)的消息。
3.3. 為什么不設(shè)置為從不斷開(kāi)連接?
雖然將SSH會(huì)話(huà)設(shè)置為永不斷開(kāi)可能很誘人,但在某些情況下,我們更明智的做法是為SSH設(shè)置超時(shí)。
如果我們連接的服務(wù)器是我們自己維護(hù)的服務(wù)器,那么設(shè)置超時(shí)可能沒(méi)有充分的理由。然而,如果我們?cè)贏WS E3這樣的平臺(tái)上托管我們的服務(wù)器,如果我們不設(shè)置超時(shí),代價(jià)可能會(huì)很高。許多云托管平臺(tái)使用服務(wù)器時(shí)每分鐘收費(fèi),即使我們不積極使用SSH會(huì)話(huà),保持SSH會(huì)話(huà)持續(xù)運(yùn)行也會(huì)增加成本。
要在客戶(hù)端上配置超時(shí),我們可以在與上面相同的配置文件中使用ServerAliveCountMax配置項(xiàng)來(lái)設(shè)置嘗試的次數(shù):
Host * ServerAliveInterval 240 ServerAliveCountMax 2
客戶(hù)端繼續(xù)每240秒發(fā)送一次信號(hào),客戶(hù)端現(xiàn)在還將偵聽(tīng)來(lái)自服務(wù)器的信號(hào)。如果它兩次執(zhí)行ServerAliveInterval而沒(méi)有收到信號(hào),它將關(guān)閉SSH會(huì)話(huà)。
同樣的,我們可以在服務(wù)器上做同樣的配置:
ClientAliveInterval 60 ClientAliveCountMax 2
注意,服務(wù)器上的配置沒(méi)有Host *的配置項(xiàng)
4. 結(jié)論
在本文中,我們學(xué)習(xí)了如何在客戶(hù)端和服務(wù)器端計(jì)算機(jī)上創(chuàng)建SSH設(shè)置的配置文件。然后,我們研究了哪些配置可以防止SSH會(huì)話(huà)超時(shí)。最后,總結(jié)一下我們不應(yīng)該將SSH會(huì)話(huà)設(shè)置為永不斷開(kāi)的一些原因。
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11177瀏覽量
208491 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7295瀏覽量
87534 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
8866瀏覽量
84962 -
SSH
+關(guān)注
關(guān)注
0文章
182瀏覽量
16263 -
python
+關(guān)注
關(guān)注
54文章
4759瀏覽量
84295
原文標(biāo)題:【運(yùn)維須知】為何SSH會(huì)話(huà)不能設(shè)置為永不斷開(kāi)?
文章出處:【微信號(hào):浩道linux,微信公眾號(hào):浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論