Почему ssh так долго решает, что произошла ошибка?

Я использую ssh для входа на свой сервер. Иногда я оставляю его подключенным и ухожу от компьютера, после чего компьютер переходит в режим энергосбережения (или как он там называется - экран просто гаснет).

Когда я возвращаюсь и пытаюсь что-то сделать в этом окне терминала, кажется, ничего не происходит. Хотя, по крайней мере, через 10 минут он в конечном итоге говорит: «Ошибка записи: сломанная труба».

У меня вопрос: что за огромная задержка? Почему так долго решается, что он больше не может подключаться к серверу? Есть ли способ сократить это время, кроме как просто закрыть терминал и начать заново?

2
задан 15 February 2013 в 03:15

2 ответа

Никогда не нашел верного ответа на этот вопрос, хотя, что интересно, на Mac задержка тайм-аута намного, намного короче (возможно, 30 секунд).

Однако, я обнаружил, что вы можете набрать ~. (тильда, затем период), чтобы немедленно закрыть сеанс. Поэтому, если SSH перестает отвечать, я просто делаю это.

0
ответ дан 15 February 2013 в 03:15

вы можете отлаживать ssh по типам в ssh -vvv ... Это не только отладит логин, но и отладит сеансы. Это может стать несколько раздражающим, когда это постоянно добавляет отладку как бы то ни было. Количество 'v' определяет количество отладки, которая активна в сеансах (чем больше v, тем больше уровней отладки). Я не уверен, что это поможет определить проблему, но может помочь отследить ее. Обычно в вашем клиенте ssh установлено время активности, которое будет отправлять «пинги», чтобы сообщить серверу, что вы все еще подключены, вот где эта переменная установлена:

/etc/ssh/sshd_config 
ClientAliveInterval 30
ClientAliveCountMax 5 

Где ClientAliveInterval: устанавливает время ожидания интервал в секундах (30), после которого, если от клиента не было получено никаких данных, sshd отправит сообщение через зашифрованный канал для запроса ответа от клиента. По умолчанию 0, что означает, что эти сообщения не будут отправлены клиенту. Эта опция применяется только к версии протокола 2. ClientAliveCountMax: Устанавливает количество живых сообщений клиента (5), которые могут быть отправлены без sshd получения каких-либо сообщений от клиента. Если этот порог достигнут во время отправки клиентских живых сообщений, sshd отключит клиента, завершив сеанс.

Если вы измените эти настройки, обязательно перезапустите sshd с помощью этой команды:

/etc/init.d/ssh restart

Надеюсь, это поможет!

0
ответ дан 15 February 2013 в 03:15

Другие вопросы по тегам:

Похожие вопросы: