- Время таймаута SSH — соединения
- Настройка серверной части
- Настройка таймаута соединения в SSH — клиенте PuTTY
- Настройка таймаута соединения в WinSCP
- Как это сделать в своем рабочем IDE
- Linux ssh время сессии
- Одминский блог
- Увеличиваем время жизни ssh сессии
- Время жизни SSH сессии
- Соединение через SSH постоянно сбрасывается (обрывается)
- Описание
- Локальный способ для Linux (ssh)
- Для всех исходящих SSH сессий
- Для выборочных исходящих SSH сессий
- Локальный способ для Windows
- Putty
- WinSCP
- Удаленный способ Linux & Windows
Время таймаута SSH — соединения
Проблема возникла из-за необходимости поддерживать достаточно много времени процесса соединения с сервером Linux, чтобы каждый раз не соединяться и каждый раз не вводит монотонные строки входа в папку проекта на сервере. Для настройки. Настроить нужно, как серверную часть, так и клиентскую, если к примеру соединение производится через PuTTY или через встроенный терминал в рабочем IDE. У меня была проблема последнего характера.
Настройка серверной части
Проблема изначально заключалась в следующем — при подключении к серверу по SSH сессия обрывалась достаточно быстро, задачу можно было решить увеличив интервал таймаута. Соотвествующие настройки можно произвести отредактировав файл sshd_config расположенный в директории /etc/ssh/sshd_config.
В данном файле необходимо найти несколько параметров, которые отвечают за данную опцию:
- TCPKeepAlive — определяет поддержку соединение в активном состоянии, для этого используются специальные контрольные сообщения, посылаемые с определенным интервалом времени. Если директива установлена, обрыв соединения будет вовремя замечен, а соответствующий процесс будет убит. Возможные значения «yes», «no».
- ClientAliveInterval — время простоя клиента в секундах, после которого демон sshd отправляет через защищённый канал запрос клиенту. Директива работает только для протокола 2. По-умолчанию установлен в 0, т.е. клиенту вообще не будут направляться такие запросы.
- ClientAliveCountMax — количество проверок доступности клиента, которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс. Данные запросы, отличаются от TCPKeepAlive, так как отправляются через защищённый канал и не могут быть подменены, в то время как TCPKeepAlive такую возможность допускает. СlientAlive полезен, если поведение клиента или сервера зависит от активности соединения. Если ClientAliveInterval равно 15 секундам, а значение ClientAliveCountMax оставлено по-умолчанию, не отвечающие клиенты SSH, будут отключаться приблизительно через 45 секунд. Параметр работает только для протокола версии 2. По-умолчанию установлено значение 3.
В нашем случае установим данные параметры следующим образом:
После этого перезапускаем сервис SSHD
Это соответствует тому, что TCPKeepAlive проверяет находится ли клиент на линии сервера, ClientAliveInterval — это время простоя в секундах, после которого демон sshd отправляет запрос клиенту, ClientAliveCountMax указывает количество проверок доступности клиента, выше в примере указана поддержка соединения в течении 3 часов (180 минут).
Настройка таймаута соединения в SSH — клиенте PuTTY
В самом клиенте PuTTy также желательно произвести нехитрые настройки. Для этого идем в секцию «Connecton» и выставляем параметр «Seconds between keepalives» равным 60 секундам. Так же можно отметить опцию «Enable TCP keepalives»
Настройка таймаута соединения в WinSCP
Открываем менеджер соединений WinSCP и клацаем на нужное соединением, после жмем на кнопку «Еще»Далее, в открывшемся окне, в ветке «Подключение» указываем необходимое время для таймаута
Как это сделать в своем рабочем IDE
Зависит от IDE, в любом случае в параметрах и настройках в разделе SSH — соединения. В моем случае проблема была с таймаутом соединения терминала IDE NetBeans. Может и есть, где настраивается время, но я не нашел данный параметр в среде, но проблема исчезла после увеличения таймаута со стороны сервера, так что проблемы с клиентом нет.
Источник
Linux ssh время сессии
Проблема изначально заключалась в следующем — при подключении ксерверу по SSH сессия обрывалась достаточно быстро, задача стояла в увеличении интервала таймаута. Соотвествующие настройки можно произвести отредактировав файл sshd_config расположенный:
В данном файле необходимо найти несколько директив:
TCPKeepAlive — определяет поддержку соединение в активном состоянии, для этого используются специальные контрольные сообщения, посылаемые с определенным интервалом времени. Если директива установлена, обрыв соединения будет вовремя замечен, а соответствующий процесс будет убит. Возможные значения «yes», «no».
ClientAliveInterval — время простоя клиента в секундах, после которого демон sshd отправляет через защищённый канал запрос клиенту. Директива работает только для протокола 2. По-умолчанию установлен в 0, т.е. клиенту вообще не будут направляться такие запросы.
ClientAliveCountMax — количество проверок доступности клиента, которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс. Данные запросы, отличаются от TCPKeepAlive, так как отправляются через защищённый канал и не могут быть подменены, в то время как TCPKeepAlive такую возможность допускает.
СlientAlive полезен, если поведение клиента или сервера зависит от активности соединения. Если ClientAliveInterval равно 15 секундам, а значение ClientAliveCountMax оставлено по-умолчанию, не отвечающие клиенты SSH, будут отключаться приблизительно через 45 секунд. Параметр работает только для протокола версии 2. По-умолчанию установлено значение 3.
Ниже приведу примеры настроек для SSHD
TCPKeepAlive проверяет находится ли клиент на линии, ClientAliveInterval время простоя в секундах, после которого демон sshd отправляет запрос клиенту, ClientAliveCountMax указывает количество проверок доступности клиента, выше в примере указна поддержка соеинения в течении 3 часов (180 минут).
Здесь 10 минут т.е. 60 секунд по 10, для примера можно так же выставить 10 минут следующим образом
У меня настроен к примеру час
Не забываем на клиенте указать настройки, для Linux
Источник
Одминский блог
Блог о технологиях, технократии и методиках борьбы с граблями
Увеличиваем время жизни ssh сессии
Пришлось тут сканить виндовый диск на сервере Kimsufi. Поскольку в обычном режиме это не получалось, то пришлось пошаманить с запуском винды через resсue mode и дальнейшую работу через виртуальную консоль VNC.
Но поскольку диск был 2Tb, то в процессе ожидания скандиска рвалась сессия ssh и VNC падал вместе с загруженным имиджем системы.
Самое простое при этом, конечно, было стартануть qemu-system-x86_64 в режиме демона с ключом -daemonize чтобы разрыв ssh сессии не ронял систему.
Но хотелось помучиться, т.ч полез увеличить время жизни ssh сессии.
Для этого заходим по ssh в консоль Linux Reсque и вызываем на редактирование конфиг ssh демона:
# vi /etc/ssh/sshd_config
убеждаемся что используется вторая версия SSH в строке
Protocol 2
после чего ищем строку
TCPKeepAlive yes
меняем на no
и добавляем после неё
ClientAliveInterval 600
ClientAliveCountMax 360
где параметры SSH2
ClientAliveInterval параметр в секундах отвечающий за время периодичности запроса сервиса ssh к клиенту;
ClientAliveCountMax количество повторов проверок, если клиент не ответил на запрос alive. По достижении лимита сессия ssh закрывается.
После чего рестартим ssh сервис с новыми параметрами
# service sshd restart
В данном конфиге выставлено порядка 3600 минут жизни сессии, т.ч скорее упадет инет на маршруте, нежели разорвется сессия.
Источник
Время жизни SSH сессии
Если при выполнении длительных операций через SSH подключение прерывается, то решить эту проблему можно!
Задача — увеличить интервал таймаута.
Соотвествующие настройки можно произвести отредактировав файл sshd_config:
TCPKeepAlive — определяет поддержку соединение в активном состоянии, для этого используются специальные контрольные сообщения, посылаемые с определенным интервалом времени. Если директива установлена, обрыв соединения будет вовремя замечен, а соответствующий процесс будет убит. Возможные значения «yes», «no».
ClientAliveInterval — время простоя клиента в секундах, после которого демон sshd отправляет через защищённый канал запрос клиенту. Директива работает только для протокола 2. По-умолчанию установлен в 0, т.е. клиенту вообще не будут направляться такие запросы.
ClientAliveCountMax — количество проверок доступности клиента, которые могут оставаться без ответа. Если предел достигнут, sshd завершит сеанс. Данные запросы, отличаются от TCPKeepAlive, так как отправляются через защищённый канал и не могут быть подменены, в то время как TCPKeepAlive такую возможность допускает.
СlientAlive полезен, если поведение клиента или сервера зависит от активности соединения. Если ClientAliveInterval равно 15 секундам, а значение ClientAliveCountMax оставлено по-умолчанию, не отвечающие клиенты SSH, будут отключаться приблизительно через 45 секунд.
Важно!
Если параметры #закомментированы то удаляем знак # перед ними.
Некоторые параметры работают только для протокола версии 2. По-умолчанию установлено значение 3. По этому выставляем в том-же файле
Protokol 2
Ниже приведу примеры настроек для SSHD
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 180
TCPKeepAlive проверяет находится ли клиент на линии, ClientAliveInterval — время простоя в секундах, после которого демон sshd отправляет запрос клиенту, ClientAliveCountMax — указывает количество проверок доступности клиента, выше в примере указна поддержка соединения в течении 3 часов (180 минут).
Далее настраиваем PuTTY (или другой свой ssh клиент)
Источник
Соединение через SSH постоянно сбрасывается (обрывается)
Раз вы читаете эту статью, то скорей всего столкнулись с такой проблемой, что ваши удаленные SSH сессии, которые открыты с помощью стандартных средств Linux, вроде ssh или sftp , или же через Putty , в случае работы с компьютера под управлением Windows, постоянно сбрасываются и обрываются. Хотя само интернет соединение на вашем компьютере с виду работает исправно, это не помогает от разрывов.
Описание
Основными причинами, по которым ваши подключения обрываются могут быть:
- Очень плохое подключение к сети/интернету, потери пакетов и высокий пинг;
- На некоторых серверах по умолчанию стоят настройки, которые обрывают SSH сессии в случае долго бездействия;
- Некоторые модели роутеров обрывают соединения, если они долгое время не активны;
Локальный способ для Linux (ssh)
Для всех исходящих SSH сессий
Если такая проблема присутствует у вас при подключении к различным серверам и везде рвутся соединения после определенного периода бездействия, то скорей всего проблема на вашей стороне. Исправить это можно явно задав соответствующие опции для ssh .
Для этого открываем файл /etc/ssh/ ssh _config и в самый низ этого файла добавляем следующие строчки:
ServerAliveInterval 60 — Данный параметр определяет как часто ваш ПК с которого установлена SSH сессия (клиент) будет отправлять на сервер SSH к которому вы подключились пакет, говорящий «я живой». В нашем примере это будет происходить каждые 60 секунд.
ServerAliveCountMax 5 — Данный параметр определяет, сколько раз такой пакет «я живой» будет отправлен на сервер в том случае, когда от сервера не последовало ответа, прежде чем принудительно разорвать соединение. В нашем примере 5 раз.
С такими настройками сессия будет висеть 60 * 5 = 300 секунд, после чего автоматически оборвется (только в случае, когда сервер вам не отвечает 5 раз подряд).
После внесения этих изменений, к любому новому соединению через ssh или sftp должны применяться эти настройки.
Для выборочных исходящих SSH сессий
Если вы не хотите менять параметры для ssh через файл конфигурации, то существует способ указывать эти настройки только для определенных хостов, для этого вводим команду для соединения вот таким образом:
Локальный способ для Windows
Putty
На ОС Windows очень часто в качестве ssh клиента используется Putty. В данном клиенте также есть настройки, позволяющие избежать разрыва ssh сессий. Находятся они вот тут:
Connection -> Sending of null packets to keep session active -> Seconds between keepalives (0 to turn off)
Задаем значение, например 60 и пытаемся подключиться.
WinSCP
Эти же настройки есть и в программе WinSCP. Найти их можно следующим способом:
В начальном окне программы необходимо выбрать нужное соединение и нажать на кнопку «Редактировать», а затем на кнопку «Еще».
В открывшихся свойствах соединения нужно выбрать раздел «Подключение» и там в пункте «Поддерживать активность» отметить «Пустые команды протокола», и задать значение «Секунд между сообщениями» — например, 10.
Если же вы пользуетесь каким-то другим клиентом, в котором нет подобных опций, тогда вам необходимо переходить к следующему пункту и изменить настройки на самом сервере, к которому вы подключаетесь.
Удаленный способ Linux & Windows
Если проблема с постоянным разрывом SSH сессий присутствует только на одном определенном сервере, то тогда можно в его конфигурации sshd сделать небольшие изменения, чтобы решить эту проблему. Для этого открываем файл /etc/ssh/ sshd _config и в самый низ конфигурации дописываем следующие настройки:
ClientAliveInterval 60 — Данный параметр определяет как часто сервер, к которому вы подключены, будет отправлять на ваш компьтер (клиент) пакет, говорящий «я живой». В нашем примере это будет происходить каждые 60 секунд.
ClientAliveCountMax 5 — Данный параметр определяет, сколько раз такой пакет «я живой» будет отправлен от сервера на ваш клиентский ПК, когда от вашего ПК не последовало ответа, прежде чем принудительно разорвать соединение. В нашем примере 5 раз.
С такими настройками сессия будет висеть 60 * 5 = 300 секунд, после чего автоматически оборвется (только в случае, когда клиент не отвечает 5 раз подряд).
После внесения изменений в конфиг, необходимо перезапустить службу sshd на сервере, сделать это можно следующей командой:
И попытаться подключиться к нему через ssh.
Источник