Что такое время ожидания по умолчанию для SSH?
Secure Shell — это метод удаленного управления компьютером или сервером, доступный для Linux, OS X и Windows. Через определенные промежутки времени сеанс SSH истекает, поскольку открытый и автоматический сеанс SSH представляет угрозу безопасности. Если вы неактивны в течение определенного времени, соединение отключится, и вам придется снова войти в систему. Этот тайм-аут определяется настройками TCP вашей системы, но его можно переопределить в настройках сервера или в настройках клиента. Если вы обнаружите, что время ожидания вашего SSH-подключения слишком часто истекает, вы всегда можете изменить конфигурацию SSH, чтобы увеличить или уменьшить время бездействия.
Время ожидания TCP
Тайм-аут вашего сервера по умолчанию равен тайм-ауту TCP вашей системы. Это связано с тем, что SSH-серверы автоматически настраиваются на использование TCPKeepalive, который отправляет зонд в заданное время, когда система простаивает, чтобы проверить, существует ли соединение. Это значение по умолчанию зависит от вашей системы. В некоторых системах по умолчанию используется всего пять секунд, а в некоторых — до двух часов; в среднем обычно от трех до пяти минут. Ваше SSH-соединение, если оно не было изменено для изменения тайм-аута на стороне сервера или клиента, будет использовать этот тайм-аут. Настройки на сервере или клиенте переопределяют это время ожидания.
Настройки времени ожидания для всего сервера
Изменение времени ожидания в файле sshd_config изменит параметры времени ожидания для каждого клиента, который входит на сервер. Системные администраторы могут получить доступ к этому файлу в /etc/ssh/sshd_config. Если вы используете терминал и вам удобно работать с редактором терминала, вы можете полностью отредактировать его в терминале, введя «sudo nano /etc/ssh/sshd_config». Добавьте параметр «ClientAliveInterval», который указывает серверу отправить пакет данных клиенту для проверки активности. Вам также следует рассмотреть возможность добавления «ClientAliveCountMax»; это сообщает серверу, сколько раз он должен проверить, не получив ответа. Не ставьте перед ними знак решетки; строки со знаками решетки перед ними считаются комментариями и не являются активными опциями на сервере. Например, если вы хотите установить для ClientAliveInterval пять минут, а для ClientAliveCountMax — две, это может выглядеть так:ClientAliveInterval 300ClientAliveCountMax 2
Время ожидания на основе клиента
If you're using a client like Putty, you can change the timeout by clicking the "Connection" option on the sidebar and fill in your preferred time in the text box beside "Seconds Between Keepalives" in seconds. This should be based on entirely how long you think you'll be inactive between activity. You can also change this manually by opening your client-side setting files at /etc/ssh/ssh_config – note the difference between the server file "sshd_config". Add the setting "ServerAliveInterval" and set in seconds how often you want to the client to send packets to keep the connection active.
Risks of Changing Timeout
Obviously changing timeout is a matter of convenience – it allows you to multitask without having to frequently renew your login to your SSH server. However, this means that you need to remain more vigilant at your desktop. If you walk away from your computer with an SSH connection open, anyone can sit down and access your server. While leaving an SSH connection open for home use is less concerning than when you're doing so for you, being in the habit of leaving your connection open can have quite horrible consequences in the wrong hands.