題:
如何防止SSH會話在OS X終端中掛起?
Dan
2012-01-14 02:30:00 UTC
view on stackexchange narkive permalink

當我在終端中通過活動的SSH會話關閉MacBook ,然後將其喚醒時,提示無響應。

大約五分鐘後,提示

寫入失敗:管道破損

並終止。

當我不這樣做時,也會發生這種情況在大約十五分鐘的時間內在終端中鍵入任何內容。

我是否可以強制OS X:

  1. 保持SSH連接有效盡可能長的時間
  2. 一旦無響應就立即殺死
  3. ol>

七 答案:
Jorge Núñez
2012-01-14 02:58:38 UTC
view on stackexchange narkive permalink

為使連接保持活動狀態,您可以在 / etc / ssh / ssh_config 中檢入顯示 ServerAliveInterval 的行,該行告訴您您的計算機多長時間(以秒為單位)發送一個空數據包以保持連接有效。如果那裡有一個0,表明您的計算機沒有在嘗試使連接保持活動狀態(已禁用),否則它會告訴您發送上述數據包的頻率(以秒為單位)。嘗試輸入120或240,如果它仍然終止連接,則可以降低到5,如果沒有達到這個數字,則可能是路由器將連接轉儲到空閒內存。 p>

要在挂機時殺死它,可以使用ssh轉義字符:

 〜。 

也就是說,先按代字號再按句號,如果它不起作用,請在按該鍵之前先按Enter鍵,這樣會立即終止連接。

Aleksandar Pavić
2015-12-18 00:01:33 UTC
view on stackexchange narkive permalink

您可以:

為所有連接配置系統範圍內的系統通過編輯: / etc / ssh / ssh_config 並添加以下行:

  ServerAliveInterval 10  

或者,每服務器〜/ .ssh / config

 主機keepsdroppingme.com ServerAliveInterval10  

這基本上是每10秒發送一次保持活動的數據包...

BinaryPaean
2013-11-07 08:12:53 UTC
view on stackexchange narkive permalink

您還可以嘗試使用很棒的 mosh項目。它將優雅地處理網絡丟失,機器進入睡眠狀態等情況,並在您再次擁有正常工作的網絡時愉快地恢復連接。

另一種歷史悠久的解決方案是使用 tmux在遠程計算機上。在這種情況下,您可能仍然會遇到管道破裂的情況,但是如果您重新連接外殼程序,則應用程序將在離開它們時等待。

實際上,這正是我現在正在做的。
Jerry Krinock
2016-09-09 06:15:23 UTC
view on stackexchange narkive permalink

此處的各種答案與配置文件的確切路徑存在衝突。也許不同的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小時。讓我開心!

Kamil Slowikowski
2017-11-01 01:50:47 UTC
view on stackexchange narkive permalink

睡眠或wifi中斷後自動重新連接ssh

  1. 從MacPorts或Homebrew安裝autossh brew install autossh

  2. 打開終端並運行 autossh -M 20000 -f [SSH ARGUMENTS GO HERE]

  3. 斷開您的wifi或讓Mac進入睡眠狀態。

  4. 重新連接wifi時,ssh會話將自動重新連接。

  5. ol>

    登錄後自動ssh

    Jon Stacey撰寫了 blog帖子,內容涉及登錄時自動激活ssh會話。

    1. 從MacPorts或Homebrew安裝autossh brew install autossh

    2. 使用bash腳本創建Automator工作流程

    3. ol>

      Automator shell script

      1. 轉到登錄系統偏好設置中的項目
      2. ol>

        System Preferences > Login items

        1. 將您的Automator工作流程添加到登錄項
        2. ol>

          Login items

Nur Rony
2019-02-14 13:45:40 UTC
view on stackexchange narkive permalink

已解決此問題,請在 $ HOME / .ssh / config 中添加以下幾行。

 主機*
  ServerAliveInterval 120
  TCPKeepAlive否
 

設置 TCPKeepAlive否會告訴客戶端,直到用戶請求以其他方式證明連接之前,假設連接仍然良好,這意味著在ssh術語在後台閒置時,臨時連接不會斷開終止連接。

MOHRE
2016-08-09 22:23:45 UTC
view on stackexchange narkive permalink

將這兩行添加到 / etc / ssh / ssh_config

  ServerAliveInterval 60
TCPKeepAlive是
 


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...