Как продлить время сессии для ssh/sftp?

  • 30 августа 2023 г. 21:16
Ответы на вопрос 3
Для продления времени сессии SSH/SFTP, вы можете внести следующие изменения в файл настроек OpenSSH на сервере:

1. Подключитесь к серверу по SSH под учетной записью с правами администратора.

2. Откройте файл настроек SSH, который находится по пути `/etc/ssh/sshd_config` (или аналогичном, в зависимости от вашей операционной системы и дистрибутива). Можно использовать команду:

```
sudo nano /etc/ssh/sshd_config
```

3. Найдите параметр `ClientAliveInterval` в файле. Если он не существует, вы можете добавить его в конец файла. Этот параметр устанавливает интервал времени в секундах между сообщениями проверки от сервера до клиента.

Пример:

```
ClientAliveInterval 300
```

4. Рядом с параметром `ClientAliveInterval` добавьте или раскомментируйте параметр `ClientAliveCountMax`. Этот параметр задает количество раз, которое сервер будет отправлять сообщения проверки клиенту до разрыва сессии.

Пример:

```
ClientAliveCountMax 3
```

5. Сохраните изменения и закройте файл.

6. Перезапустите сервис SSH на сервере, чтобы применить новые настройки. Это можно сделать, выполнив команду:

```
sudo service ssh restart
```

Теперь ваша сессия SSH/SFTP будет продлеваться каждые 5 минут (300 секунд) и разорвана после 3 попыток проверки связи с сервером.

Если проблема persist, возможно, вам стоит проверить журналы (логи) SSH на сервере для более подробной информации о проблеме. Проанализировав эти логи, вы можете увидеть, почему сессия прекратилась или почему новые настройки не работают. Журналы SSH обычно находятся в `/var/log/auth.log` или `/var/log/secure` в зависимости от операционной системы.
На клиенте можно использовать опцию ServerAliveInterval, чтобы установить интервал времени в секундах, после которого, если от сервера не было получено данных, ssh(1) отправит через зашифрованный канал сообщение с запросом о ответе от сервера. По умолчанию значение этой опции равно 0, что означает, что такие сообщения на сервер не отправляются.
При подключении к серверу можно указать опцию keepalive. Также можно прописать эту опцию в конфигурационном файле $HOME/.ssh/config для всех подключений. Вот пример конфигурации:

Host *
    ServerAliveInterval 7200
Похожие вопросы