Как продлить сессию ssh.

SSH или Secure Shell — важная утилита, когда речь идет об удаленном входе в систему на удаленных машинах. Для пользователей Linux утилита SSH предлагает больше, чем просто решения для удаленного входа в систему.

Пользователи могут легко выполнять административные задачи Linux, независимо от того, является ли целевой удаленный компьютер ненадежным или сеть, обеспечивающая связь между двумя компьютерами, небезопасна, SSH гарантирует, что эти соединения будут зашифрованы и безопасны.

Иногда неприятно, когда сеанс SSH завершается слишком рано. Например, когда мы выполняем много задач в терминальной среде Linux. Чтобы избежать повторного подключения к удаленной машине из-за преждевременного разрыва соединения, найдем способы поддержания активности сеанса SSH как можно дольше.

В этой статье рассмотрим необходимые шаги, которые помогут нам поддерживать активность любого сеанса SSH как можно дольше, пока мы сами не решим разорвать соединение.

Почему происходит разрыв соединения.

Обычно именно демон ssh, работающий на серверной машине, делает возможным ssh-соединение с клиентской машины. Если соединение SSH установлено успешно и компьютеры сервера и клиента периодически не обмениваются данными, сервер закрывает соединение после некоторого фиксированного периода времени.

Чтобы решить эту проблему, внесем некоторые изменения в конфигурационный файл SSH на сервере и на клиентской машине.

Соединение с клиентской машины.

На клиентском компьютере файл конфигурации SSH обычно находится по адресу $HOME/.ssh/config. Если его не существует, нужно будет его создать.

$ cat $HOME/.ssh/config
или
$ touch $HOME/.ssh/config

Для сохранения конфиденциальности доступа к этому файлу, воспользуемся командой chmod и предоставим ему права на чтение и запись, только текущему пользователю.

$ chmod 600 $HOME/.ssh/config

Теперь воспользуемся любым, удобным вас текстовым редактором, и добавим в этот файл несколько правил ssh.

Host *
    ServerAliveInterval 300

Если ваше SSH-соединение привязано к определенному хосту, вы можете отредактировать приведенную выше запись файла, чтобы она выглядела следующим образом:

Host example_host.com
    ServerAliveInterval 300

Благодаря такой конфигурации, клиентский компьютер будет ждать 300 секунд, прежде чем позволить закрыть серверу ssh-соединение.

Соединение с сервера.

Вы также можете оказаться в ситуации, когда вам нужно использовать серверный компьютер или удаленный компьютер для доступа к клиенту.

Для поддержки времени соединения на сервере, найдите и откройте файл /etc/ssh/sshd_config или /etc/ssh/ssh_config, в зависимости от дистрибутива, используемого вами. И добавьте следующий параметр в этот конфиг.

ClientAliveInterval 300

Это значение гарантирует, что соединение SSH будет длиться 300 секунд, прежде чем истечет время ожидания.

Также желательно установить значение тайм-аута при доступе к машинам вместе с количеством удачных запросов.

На клиентской машине:

Host *
    ServerAliveInterval 300
    ServerAliveCountMax 2

или на сервере:

ClientAliveInterval 300
ClientAliveCountMax 2

В этом случае ssh станет проверять соединение, отправляя echo-запросы на удаленный хост через 300 секунд. Они задаются параметром ServerAliveInterval. Если без ответа остается больше, чем ServerAliveCountMax запросов, SSH закрывает соединение.

Заключени

Теперь мы можем комфортно работать с помощью ssh, не беспокоясь о неожиданных тайм-аутах. Надеюсь, вам понравилась статья. Не стесняйтесь оставлять комментарии или отзывы.

Was this helpful?

0 / 0

Добавить комментарий 0