Таймауты для SSH-сессий

Date February 21st, 2010 Author Vitaly Agapov

ssh

Сколько раз уж бывало так, что сидишь на удалённом сервере, залогинившись по SSH, никого не трогаешь. Потом отвлечешься ненадолго (ну… пообедать там, новости почитать, Симпсонов посмотреть), смотришь в консоль, а сессия отвалилась. Вроде и не смертельно, вроде и секьюрно. В общем, не задумывался об этом и просто залогинивался по-новой. Сегодня, однако, задумался – в какой бы конфиг и какую бы строчку забабахать, чтобы этого не происходило. Гугл и man sshd_config в помощь. В общем, нашёл способ. И не один.

Способ 1

На стороне клиента пишем в ssh_config строку:

ServerAliveInterval 60
ServerAliveCountMax 10

Так мы задаём необходимость клиенту раз в 60 секунд посылать пакеты keep-alive на сервер. И если после 10 посылок сервер так ничего и не отвечает, то отключиться. Работает только в SSHv2.

Кстати, эти же строки можно прописать не для всех в ssh_config, а в файле ~/.ssh/config для конкретного пользователя.

Способ 2

На стороне сервера прописываем в sshd_config:

ClientAliveInterval 60
ClientAliveCountMax 10

На этот раз сервер sshd будет раз в минуту слать пакеты keep-alive клиенту. Если клиент будет активен, то сессия разрываться также не будет. Сессия разорвется только когда клиент 10 раз не ответит на посланный keep-alive.

Само собой, надо не забыть про /etc/init.d/sshd reload

Способ 3

Если не хочется менять конфиг, то можно поменять параметры для конкретного соединения. Для этого выполняем команду ssh с ключом -o:

ssh -o ServerAliveInterval=60

Tags: ,
Category: Linux | 3 Comments »

Comments

3 комментариев на “Таймауты для SSH-сессий”

  1. Nyse

    http://nyse-trade.ru/pochemu-ne-rabotaet-verxnee-menyu-sajta/

    Я попробовал как ты сказал, не помогло (((

  2. Agapoff

    Solved…

  3. Ace

    Все работает!!! Респект спасибо и уважуха!

Leave a comment

 Comment Form