1. 程式人生 > 其它 >解決Centos使用ssh連線自動斷開

解決Centos使用ssh連線自動斷開

技術標籤:Linuxlinuxssh

在使用Centos7的時候,經常在一段時間沒有操作之後就自動斷掉了,然後重新連線之後就可能失去了當前操作場景,那麼如何才能保證我們即使長時間不操作也會一直保持連線狀態,往下看。

  1. 第一種方法也是網上到處都能搜尋到的,修改/etc/ssh/sshd_config檔案

    使用命令開啟/etc/ssh/sshd_config檔案:vim /etc/ssh/sshd_config,修改兩個引數ClientAliveIntervalClientAliveCountMax,這兩個引數控制了客戶端的存活檢測間隔和失敗檢測的最大次數,如果超過了這個次數就斷開客戶端的連線,預設情況下這兩個是未開啟的,將其修改為60和5,值自己定

    ClientAliveInterval 100
    ClientAliveCountMax 15
    

    修改完配置之後重啟sshd服務:

    systemctl restart sshd
    

    使用該方法修改之後如果還是經常自動斷開,那你就看第二種

  2. 第二種來自於linvirtshell,是我實際遇到的情況

    在伺服器自動斷開的時候,控制檯輸出了一個關鍵語句:

在這裡插入圖片描述

哦吼~這句話很關鍵喔,尤其是auto-logout,在linvirtshell上有這麼一句話:

The ssh “timed out waiting for input: auto-logout” messages is generated by ssh upon reaching a auto-logout after an inactivity time specified by the TMOUT environment variable. If this variable is not set your session will not be auto-logged out due to inactivity. If the environment variable is set, your session will be automatically closed/logged out after the amount of seconds specified by the TMOUT variable.

大致意思是Linux維護了一個TMOUT的環境變數,該環境變數的目的是在ssh客戶端在指定時間未活動的話,就自動斷開該客戶端的連線,單位是,那我們輸出一下該環境變數看看是不是這貨在搞怪。

[[email protected] ~]# echo $TMOUT
180

果然,180秒未活動就自動斷開連線,結合之前每次斷開的時間間隔,就是這貨在作怪了,那麼我們直接修改這個引數試試,設定為30分鐘不過期

export TMOUT=1800

經驗證,確實有效,那麼將其設定到/etc/profile檔案中(如果檔案中已經有配置了,修改時間即可)

如果想關閉自動斷開,想永久不斷開的話(不推薦),就從環境變數裡面移除掉該引數。