在macbook中使用終端, 通過ssh連接上遠程服務器後, 隔一段時間沒有數據傳遞時會自動斷開,而表象就是終端會卡着無響應,要等幾分鐘後纔會顯示斷開並且返回到本地終端命令行。這個問題太影響流暢性和心情, 決定修一修。
第一種方法, 在本地或者遠程服務器修改ssh配置, 定時發起類似心跳的信號。
- 在服務器中的/etc/ssh/sshd_config中去掉原有註釋並改成這樣:
ClientAliveInterval 60
ClientAliveCountMax 3
ClientAliveInterval 60表示每分鐘發送一次, 然後客戶端響應, 從而保持長連接. ClientAliveCountMax表示服務器發出請求後客戶端沒有響應的次數達到3次, 就自動斷開。
- 在客戶端中的/etc/ssh/ssh_ssh_config中去掉註釋並改成這樣:
ServerAliveInterval 60
ServerAliveCountMax 2
對應的意義與上面類似。
第二種方法,使用autossh, 它會在ssh斷開後自動再連接上。
目前我用的是這個版本: https://github.com/wufeifei/autossh
- 第三種方法,使用mosh工具, 參考http://mosh.mit.edu/ 。
據說是神器, 不過我沒用上。