當我在終端中通過活動的SSH會話關閉MacBook ,然後將其喚醒時,提示無響應。
大約五分鐘後,提示
寫入失敗:管道破損
並終止。
當我不這樣做時,也會發生這種情況在大約十五分鐘的時間內在終端中鍵入任何內容。
我是否可以強制OS X:
- 保持SSH連接有效盡可能長的時間
- 一旦無響應就立即殺死 ol>
?
當我在終端中通過活動的SSH會話關閉MacBook ,然後將其喚醒時,提示無響應。
大約五分鐘後,提示
寫入失敗:管道破損
並終止。
當我不這樣做時,也會發生這種情況在大約十五分鐘的時間內在終端中鍵入任何內容。
我是否可以強制OS X:
?
為使連接保持活動狀態,您可以在 / etc / ssh / ssh_config
中檢入顯示 ServerAliveInterval
的行,該行告訴您您的計算機多長時間(以秒為單位)發送一個空數據包以保持連接有效。如果那裡有一個0,表明您的計算機沒有在嘗試使連接保持活動狀態(已禁用),否則它會告訴您發送上述數據包的頻率(以秒為單位)。嘗試輸入120或240,如果它仍然終止連接,則可以降低到5,如果沒有達到這個數字,則可能是路由器將連接轉儲到空閒內存。 p>
要在挂機時殺死它,可以使用ssh轉義字符:
〜。
也就是說,先按代字號再按句號,如果它不起作用,請在按該鍵之前先按Enter鍵,這樣會立即終止連接。
您可以:
為所有連接配置系統範圍內的系統通過編輯: / etc / ssh / ssh_config 並添加以下行:
ServerAliveInterval 10
或者,每服務器〜/ .ssh / config
主機keepsdroppingme.com ServerAliveInterval10
這基本上是每10秒發送一次保持活動的數據包...
此處的各種答案與配置文件的確切路徑存在衝突。也許不同的unix有所不同?我建議您閱讀系統上的手冊頁!
在man ssh(1)中,搜索文本: config 。在我的系統上,我可以選擇系統範圍的配置文件或此用戶的配置文件(路徑奇怪地不同)。
在man ssh_config(5)中,搜索文本: alive 。在我的系統上,看起來我需要同時設置 ServerAliveInterval 和 ServerAliveCountMax 。
在macOS 10.12 Sierra上對我有用的是將以下兩行放在〜/ .ssh / config中:
ServerAliveInterval 20
ServerAliveCountMax 180
現在,我可以不斷開連接地連接到我的Ubuntu 16.04服務器20 * 180秒= 1小時。讓我開心!
從MacPorts或Homebrew安裝autossh: brew install autossh
打開終端並運行 autossh -M 20000 -f [SSH ARGUMENTS GO HERE]
斷開您的wifi或讓Mac進入睡眠狀態。
重新連接wifi時,ssh會話將自動重新連接。
Jon Stacey撰寫了 blog帖子,內容涉及登錄時自動激活ssh會話。
已解決此問題,請在 $ HOME / .ssh / config
中添加以下幾行。
主機*
ServerAliveInterval 120
TCPKeepAlive否
設置 TCPKeepAlive否
會告訴客戶端,直到用戶請求以其他方式證明連接之前,假設連接仍然良好,這意味著在ssh術語在後台閒置時,臨時連接不會斷開終止連接。
將這兩行添加到 / etc / ssh / ssh_config
:
ServerAliveInterval 60
TCPKeepAlive是