Centos
SSH:空閒一段時間後連接重置
當我的連接空閒一段時間後,遠端主機將關閉連接。我嘗試輸入一個新命令,它掛起,然後關閉連接。如何使 ssh 連接保持活動更長時間?
$ ssh root@host.com Last login: Tue Jan 3 03:09:39 2017 from c-99-99-99-99.hsd1.xx.comcast.net [root@ip-172-99-99-99 ~]# groups root bin daemon sys adm disk wheel [root@ip-172-99-99-99 ~]# users root root [root@ip-172-99-99-99 ~]# less /etc/passwd [root@ip-172-99-99-99 ~]# Connection reset by 52.99.99.99 port 22
遠端是 CentOS on Amazon (AWS),本地是 Cygwin。
因為您上次登錄是來自 comcast.net,所以我猜您是從一個
home
系統連接的,而您位於執行 NAT 的路由器後面。執行 NAT 的系統的一個問題是知道何時不再需要連接。如果連接完全斷開,則沒有問題,但如果兩台機器只是重新啟動,則 NAT 框沒有信號表明這已發生。因此,您的典型 NAT 盒子有計時器,上面寫著“如果一個小時內沒有流量,那麼兩個端點顯然不會再發送任何東西”,因此會回收 NAT 佔用的資源。所以要做的就是每隔一段時間發送一些流量。假設您在 cygwin 機器上使用該
openssh
實現,最簡單的方法是啟用 TCPKeepAlive。代替ssh root@host.com
和
ssh -o TCPKeepAlive=true root@host.com
對於長期使用,您最好設置一個
~/.ssh/config
文件。host fred hostname host.com user root TCPKeepAlive=true
然後你就可以說只是
ssh fred
用所需的選項連接到機器。