前言
大家好,這里是浩道linux,主要給大家分享linux、python、網(wǎng)絡(luò)通信相關(guān)的IT知識平臺。
今天浩道跟大家分享運維工作中常常被大家忽略的SSH會話中斷背后的一些知識點!
相信大家在工作中常常遇到通過SSH連接到Linux服務(wù)器一段時間后會自動斷開了,但是這時候大家往往不去追究其中的原理,只是習(xí)慣性在CRT等連接工具中的會話窗口按下回車鍵再次連接了。本文就讓你看看這個斷開背后的原理,以及弄清楚其背后的原理后告訴你為什么不能設(shè)置永不斷開!
1. 概覽
有多少次,我們想要保持SSH會話一直處于連接狀態(tài),以保持應(yīng)用程序運行,或者只是避免在返回我們使用的SSH窗口時感到沮喪。在本教程中,你將獲得如何通過防止SSH會話超時,直到你關(guān)閉終端窗口。
2. 為什么SSH會關(guān)閉連接?
我們?yōu)榱耸褂肧SH登錄到服務(wù)器上,目的服務(wù)器上的守護進程(sshd)一定是保持運行狀態(tài)。如果SSH客戶端一段時間沒有發(fā)送到目的服務(wù)器,服務(wù)器會在超過一段時間后關(guān)閉連接。
為了防止關(guān)閉SSH連接,我們可以在客戶端或者服務(wù)端進行配置。
3. 設(shè)置配置文件
有幾個配置文件可以修改,以保持SSH會話的連接,避免超時。要看是從客戶端配置還是服務(wù)端配置。
3.1 客戶端配置
客戶端文件位置
$HOME/.ssh/config
如果我們使用使用cat $HOME/.ssh/config,可能會得到一個錯誤信息 “no file found”。
$ cat $HOME/.ssh/config cat: /.ssh/config: No such file or directory
如果我們看到這個錯誤消息,意味著我們需要手動創(chuàng)建這個配置文件。如果.ssh目錄不存在,首先創(chuàng)建.ssh目錄,使用命令mkdir $HOME/.ssh來創(chuàng)建目錄,如果提示目錄已經(jīng)存在,我們將會看到一個消息 “File exists”,請忽略即可;如果目錄創(chuàng)建成功,我們不會看到任何輸出信息。
$ mkdir $HOME/.ssh然后創(chuàng)建配置文件touch $HOME/.ssh/config。
$ touch $HOME/.ssh/config
一旦我們創(chuàng)建好配置文件,我們還需要使用chmod修改配置文件的權(quán)限,不能讓所有人都可以編輯這個配置文件。
$ chmod 600 $HOME/.ssh/config
現(xiàn)在我們可以任何編輯器來編輯這個配置文件了,比如nano或者vim,在終端使用vim $HOME/.ssh/config打開配置文件。
現(xiàn)在讓我們來添加一些配置信息到配置文件里面。在vim按i進入編輯模式,然后輸入下面的內(nèi)容:
Host example Hostname example.com ServerAliveInterval 240
上面的配置信息,僅在SSH會議連接到example這個域的時候才會生效。
ServerAliveInterval設(shè)置了客戶端在發(fā)送保持連接信號之前的等待時間。
然后按ESC鍵,進入vim的命令模式,連續(xù)輸入:wq保存退出vim編輯器。
另外可以把example換成*來指定所有的域的配置
Host * ServerAliveInterval 240
我們可以使用上面同樣的步驟來編輯和保存配置文件。
3.2. 服務(wù)端配置文件
在某些情況下,我們可能可以訪問服務(wù)器上的配置文件。如果是這種情況,我們可以配置何時希望服務(wù)器關(guān)閉SSH連接。
在服務(wù)器上編輯配置文件的過程與客戶端配置文件類似,但有一些不同。
首先,服務(wù)器端配置文件的文件位置是/etc/ssh/sshd_config;
現(xiàn)在我們使用 vim 把ClientAliveInterval添加到配置文件,注意,這里是"Client"而不是"Server",跟上面客戶端的配置是不一樣的。
ClientAliveInterval 60
ClientAliveInterval是以秒為單位指定的超時間隔。如果服務(wù)器從客戶端接收數(shù)據(jù)的時間超過了超時間隔,則服務(wù)器將向客戶端發(fā)送請求響應(yīng)的消息。
3.3. 為什么不設(shè)置為從不斷開連接?
雖然將SSH會話設(shè)置為永不斷開可能很誘人,但在某些情況下,我們更明智的做法是為SSH設(shè)置超時。
如果我們連接的服務(wù)器是我們自己維護的服務(wù)器,那么設(shè)置超時可能沒有充分的理由。然而,如果我們在AWS E3這樣的平臺上托管我們的服務(wù)器,如果我們不設(shè)置超時,代價可能會很高。許多云托管平臺使用服務(wù)器時每分鐘收費,即使我們不積極使用SSH會話,保持SSH會話持續(xù)運行也會增加成本。
要在客戶端上配置超時,我們可以在與上面相同的配置文件中使用ServerAliveCountMax配置項來設(shè)置嘗試的次數(shù):
Host * ServerAliveInterval 240 ServerAliveCountMax 2
客戶端繼續(xù)每240秒發(fā)送一次信號,客戶端現(xiàn)在還將偵聽來自服務(wù)器的信號。如果它兩次執(zhí)行ServerAliveInterval而沒有收到信號,它將關(guān)閉SSH會話。
同樣的,我們可以在服務(wù)器上做同樣的配置:
ClientAliveInterval 60 ClientAliveCountMax 2
注意,服務(wù)器上的配置沒有Host *的配置項
4. 結(jié)論
在本文中,我們學(xué)習(xí)了如何在客戶端和服務(wù)器端計算機上創(chuàng)建SSH設(shè)置的配置文件。然后,我們研究了哪些配置可以防止SSH會話超時。最后,總結(jié)一下我們不應(yīng)該將SSH會話設(shè)置為永不斷開的一些原因。
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11353瀏覽量
210565 -
計算機
+關(guān)注
關(guān)注
19文章
7550瀏覽量
88753 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9338瀏覽量
86165 -
SSH
+關(guān)注
關(guān)注
0文章
190瀏覽量
16418 -
python
+關(guān)注
關(guān)注
56文章
4811瀏覽量
85084
原文標(biāo)題:【運維須知】為何SSH會話不能設(shè)置為永不斷開?
文章出處:【微信號:浩道linux,微信公眾號:浩道linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
如何實現(xiàn)遠程登錄ssh并配置為開機啟動
什么是 SSH(secure shell)
為何ssh有時能連上派但有時又連不上派?
通過網(wǎng)口SSH登錄,然后./wifi.sh連接wifi,SSH就被斷開了是為什么?
怎樣去解決ssh連接wifi設(shè)置沒有成功的問題
迅為iTOP-RK3568開發(fā)板MobaXterm的安裝教程
對目前流行的ssh密碼暴力破解工具進行實戰(zhàn)研究、分析和總結(jié)
![對目前流行的<b class='flag-5'>ssh</b>密碼暴力破解工具進行實戰(zhàn)研究、分析和總結(jié)](https://file.elecfans.com/web1/M00/45/7C/o4YBAFpuyh6AFd8AAAAPfzErfoQ605.jpg)
設(shè)置面向LSF 和SSH 的遠程服務(wù)器群設(shè)備
![<b class='flag-5'>設(shè)置</b>面向LSF 和<b class='flag-5'>SSH</b> 的遠程服務(wù)器群設(shè)備](https://file.elecfans.com/web1/M00/53/54/pIYBAFsg4aCAdW9sAAAodrqw59U566.jpg)
SSH服務(wù)器應(yīng)用程序免費下載
![<b class='flag-5'>SSH</b>服務(wù)器應(yīng)用程序免費下載](https://file.elecfans.com/web1/M00/AE/C4/pIYBAF3bLDWAPu8VAABrKOg-NGU064.png)
如何防止SSH會話斷開連接
SSH第1部分:配置SSH以安全連接到遠程設(shè)備
保持SSH會話不掉線
地平線旭日X3派試用 | ssh密鑰登陸 藍牙手柄連入ros
![地平線旭日X3派試用 | <b class='flag-5'>ssh</b>密鑰登陸 藍牙手柄連入ros](https://file.elecfans.com/web2/M00/81/66/poYBAGORlMWAf7JEAAAmDE5ooMo198.png)
評論