1. 概覽
有多少次,我們想要保持SSH會話一直處于連接狀態,以保持應用程序運行,或者只是避免在返回我們使用的SSH窗口時感到沮喪。在本教程中,你將獲得如何通過防止SSH會話超時,直到你關閉終端窗口。
2. 為什么SSH會關閉連接?
我們為了使用SSH登錄到服務器上,目的服務器上的守護進程(sshd)一定是保持運行狀態。如果SSH客戶端一段時間沒有發送到目的服務器,服務器會在超過一段時間后關閉連接。
為了防止關閉SSH連接,我們可以在客戶端或者服務端進行配置。
3. 設置配置文件
有幾個配置文件可以修改,以保持SSH會話的連接,避免超時。要看是從客戶端配置還是服務端配置。
3.1 客戶端配置
客戶端文件位置
$HOME/.ssh/config
如果我們使用使用cat $HOME/.ssh/config
,可能會得到一個錯誤信息 “no file found”。
$ cat $HOME/.ssh/config
cat: /.ssh/config: No such file or directory
如果我們看到這個錯誤消息,意味著我們需要手動創建這個配置文件。如果.ssh
目錄不存在,首先創建.ssh
目錄,使用命令mkdir $HOME/.ssh
來創建目錄,如果提示目錄已經存在,我們將會看到一個消息 “File exists”,請忽略即可;如果目錄創建成功,我們不會看到任何輸出信息。
$HOME/.ssh mkdir
然后創建配置文件touch $HOME/.ssh/config
。
$HOME/.ssh/config touch
一旦我們創建好配置文件,我們還需要使用chmod
修改配置文件的權限,不能讓所有人都可以編輯這個配置文件。
$HOME/.ssh/config chmod 600
現在我們可以任何編輯器來編輯這個配置文件了,比如nano
或者vim
,在終端使用vim $HOME/.ssh/config
打開配置文件。
現在讓我們來添加一些配置信息到配置文件里面。在vim
按i
進入編輯模式,然后輸入下面的內容:
Host example
Hostname example.com
ServerAliveInterval 240
上面的配置信息,僅在SSH會議連接到example這個域的時候才會生效。
ServerAliveInterval設置了客戶端在發送保持連接信號之前的等待時間。
然后按ESC
鍵,進入vim的命令模式,連續輸入:wq
保存退出vim編輯器。
另外可以把example
換成*
來指定所有的域的配置
Host *
ServerAliveInterval 240
我們可以使用上面同樣的步驟來編輯和保存配置文件。
3.2. 服務端配置文件
在某些情況下,我們可能可以訪問服務器上的配置文件。如果是這種情況,我們可以配置何時希望服務器關閉SSH連接。
在服務器上編輯配置文件的過程與客戶端配置文件類似,但有一些不同。
首先,服務器端配置文件的文件位置是/etc/ssh/sshd_config
;
現在我們使用 vim 把ClientAliveInterval
添加到配置文件,注意,這里是"Client"
而不是"Server"
,跟上面客戶端的配置是不一樣的。
ClientAliveInterval 60
ClientAliveInterval
是以秒為單位指定的超時間隔。如果服務器從客戶端接收數據的時間超過了超時間隔,則服務器將向客戶端發送請求響應的消息。
3.3. 為什么不設置為從不斷開連接?
雖然將SSH會話設置為永不斷開可能很誘人,但在某些情況下,我們更明智的做法是為SSH設置超時。
如果我們連接的服務器是我們自己維護的服務器,那么設置超時可能沒有充分的理由。然而,如果我們在AWS E3這樣的平臺上托管我們的服務器,如果我們不設置超時,代價可能會很高。許多云托管平臺使用服務器時每分鐘收費,即使我們不積極使用SSH會話,保持SSH會話持續運行也會增加成本。
要在客戶端
上配置超時,我們可以在與上面相同的配置文件中使用ServerAliveCountMax配置項來設置嘗試的次數:
Host *
ServerAliveInterval 240
ServerAliveCountMax 2
客戶端繼續每240秒發送一次信號,客戶端現在還將偵聽來自服務器的信號。如果它兩次執行ServerAliveInterval而沒有收到信號,它將關閉SSH會話。
同樣的,我們可以在服務器上做同樣的配置:
ClientAliveInterval 60
ClientAliveCountMax 2
注意,服務器上的配置沒有Host *
的配置項
4. 結論
在本文中,我們學習了如何在客戶端和服務器端計算機上創建SSH設置的配置文件。然后,我們研究了哪些配置可以防止SSH會話超時。最后,總結一下我們不應該將SSH會話設置為永不斷開的一些原因。
審核編輯 :李倩
-
服務器
+關注
關注
12文章
8701瀏覽量
84562 -
客戶端
+關注
關注
1文章
287瀏覽量
16604 -
SSH
+關注
關注
0文章
178瀏覽量
16226
原文標題:保持SSH會話不掉線
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論