
如何設定 SSH 逾時
在您的伺服器上設定 SSH 連接不同逾時期限是重要且簡單步驟,可維護伺服器具備絕佳穩定度和安全性。多數 Linux 發佈上找到的一般 SSH 協助程式工具,可讓此程序輕鬆處理和其他殼層設定,甚至是提供中斷閒置的使用者必要的功能。
遇到問題 | 入門版-1 |中-2 |進階-3 |
所需的時間 | 10 分鐘 |
相關的產品 | Linux 式 VPS 或專屬的伺服器 Linux 式共用主機 |
管理伺服器端 SSH 逾時
若要輕鬆處理透過 SSH 連接至您的伺服器中斷連接或甚至閒置客戶,您會想要查看兩個角問題: ClientAlive 和殼層 TMOUT。
設定 SSH ClientAlive 設定
當用戶端休旅車透過 SSH 連接,(設定正確) Linux 式伺服器時,伺服器將指定的間隔執行一連串連接用戶端存留要求。在每次執行,伺服器會傳送給用戶端,請確認用戶端連線仍有效,且包。應該此存留包交換過失敗伺服器可以自動伺服器連接。
若要確保您的伺服器終止任何 SSH 回應用戶端不正確您必須編輯您的 sshd_config
檔案。對於大部分發佈 sshd_config
位於 /etc/ssh
目錄中的,但如果需要您可以隨時尋找與快速找到:
/etc/ssh/sshd_config
/usr/share/doc/openssh-client/examples/sshd_config
若要開始,請開啟 sshd_config
檔案,您最喜愛的文字編輯器 (例如 vim 或 nano – 我們使用 nano 此處):
# Package generated configuration file
# See the sshd_config(5) manpage for details
# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
...
有三種設定,您應該找出 — 或新增必要 — 在您 sshd_config
檔案:
ClientAliveCountMax
ClientAliveInterval
TCPKeepAlive
以下是預設設定大部分的 SSH 協助程式安裝:
ClientAliveInterval 0
TCPKeepAlive yes
ClientAliveInterval
決定如何經常加密 (和因此困難詐騙)。TCPKeepAlive
包用戶端傳輸 (數秒)。此設定可搭配 ClientAliveCountMax
,決定多少 KeepAlive
封會傳送給任何回應用戶端終止連線前。
使用預設設定為零秒 ClientAliveInterval
,大部份的 SSH 協助程式安裝將不會傳輸這些 TCPKeepAlive
封。
您可以輕鬆地啟用 ClientAlive
進行變更或變更中的這些設定包傳輸您 sshd_config
檔案。例如,發送的時間間隔 15 秒 4 封最多一點,加入這些行 sshd_config
檔案:
ClientAliveInterval 15
第三個設定 TCPKeepAlive
同樣地加入行為 ClientAliveCountMax
和 ClientAliveInterval
組合,除了 TCPKeepAlive
檢查是否仍然連線用戶端使用加密的封 (TCP 協定傳送)。
啟用 TCPKeepAlive
可確保不會發生任何 「 幽靈 」 用戶端連線,您可以使用資源的伺服器。相反地,如果有可能伺服器的 SSH 連接用戶端與您的伺服器、 之間的連線任何暫時網際網路 hiccups TCPKeepAlive
協定可能會中斷該用戶。
啟用 (或停用) TCPKeepAlive
,設定值 sshd_config
是的或沒有檔案:
TCPKeepAlive yes
進行的任何變更後如常您 sshd_config
檔案,請一定要將檔案儲存,然後重新啟動您 SSH 協助程式:
中斷連接閒置 SSH 用戶端
時使用的 ClientAlive 和 TCPKeepAlive
中的設定您的 sshd_config
會處理任何連接的已不當嚴重損毀、 SSH 用戶端連線長段時間,只需閒置上有任何影響。如果安全性極為重要,您可能希望伺服器閒置 SSH 連接至您的伺服器。
對於大部分 Linux 發佈,中斷閒置用戶端可輕鬆處理使用您 bashrc 檔案中設定 TMOUT 艦隊。因為您可能會想指定套用至所有使用者的設定,您應該編輯 /etc/bash.bashrc
檔案 (如使用者專屬設定開啟 ~/.bashrc
相反地):
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
...
若要新增閒置用戶端中斷,只要新增下列 」 結尾 bash.bashrc
檔案:
readonly TMOUT
export TMOUT
TMOUT 設定為用戶端可連接及閒置逾時偵測到和伺服器中斷連接之前的秒數。您可以一開始使用很小值,先測試您的設定,但應在生產使用的合理值。
一旦變更設定和 bash.bashrc
已儲存,您可能會立即開啟新 SSH 連接與您的伺服器等候。您的設定的 TMOUT 期過後會中斷連接:
Wed Oct 15 03:09:41 EDT 2014
account@ubuntu:~# ssh root@123.123.456.78
root@Main:~# date
Wed Oct 15 03:09:47 EDT 2014
root@Main:~# timed out waiting for input: auto-logout
Connection to 123.123.456.78 closed
account@ubuntu:~# date
Wed Oct 15 03:14:53 EDT 2014
下列這些基本的作法可確保提高的安全性並具備絕佳穩定度所有 SSH 連線至您的伺服器。