Правильный способ перезапуска sshd и других демонов

Вопрос или проблема

Как правильно перезапустить sshd или иначе сообщить ему, что его конфигурационный файл изменился? Судя по всему, sudo restart sshd больше не является правильным способом сделать это, так как попытка выполнить эту команду приводит к

restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

Команда должна быть такой:

sudo service ssh restart

или:

sudo systemctl restart ssh.service

Правильный способ сделать это следующий:

systemctl reload sshd.service

Перезапуск приведет к перезапуску всего процесса.

В последних версиях Ubuntu, таких как Ubuntu 22.10 и более новых, мы можем сделать это с помощью этих двух команд.


После изменения /etc/ssh/sshd_config, например, если мы изменим порт прослушивания ssh-сервиса с 22 на 2222.

Изменение не вступит в силу, если не выполнить нижеприведенные команды.

sudo systemctl daemon-reload
sudo systemctl restart ssh.service

Ответ или решение

Правильный способ перезапуска SSHD и других демонов

Когда вам нужно перезапустить демон SSH (sshd) или уведомить его об изменении конфигурационного файла, важно делать это корректно, чтобы избежать потенциальных проблем с подключением и работой сервисов. В этой статье мы рассмотрим необходимые команды для управления сервисом SSH в современных дистрибутивах Linux, включая Ubuntu.

Контекст проблемы

С недавними изменениями в системах инициализации, такими как Upstart и systemd, старые команды, которые раньше использовались для управления сервисами, стали устаревшими. Например, команда sudo restart sshd больше не работает на современных версиях Ubuntu. Это связано с тем, что она ориентирована на Upstart, и в итоге может выдать ошибку:

restart: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

Корректные команды для перезапуска SSHD

Для работы с SSHD мы можем использовать systemd, который стал стандартом в большинстве современных дистрибутивов, включая Ubuntu начиная с версии 15.04. Для перезапуска SSHD можно использовать следующие команды:

  1. Перезапуск сервиса

    sudo systemctl restart ssh.service
  2. Перезагрузка демона без остановки сервиса
    Если вам нужно применить изменения в конфигурации, но не хотите разрывать текущие соединения, можно воспользоваться командой reload:

    sudo systemctl reload sshd.service

Эта команда применит изменения в конфигурации, не прерывая текущие SSH-сеансы.

Пример изменения конфигурации

Предположим, вы изменили файл конфигурации SSH /etc/ssh/sshd_config, например, изменили порт, на котором слушает SSH. Чтобы изменения вступили в силу, нужно сначала перезагрузить демон и, возможно, выполнить команду для обновления конфигурации:

# Обновление демонов для применения изменений
sudo systemctl daemon-reload

# Перезапуск сервиса SSH
sudo systemctl restart ssh.service

Заключение

Правильное управление демоном SSHD и другими системными демонами требует знания актуальных команд и методов. Используйте systemctl для управления сервисом SSH, чтобы избежать потенциальных неполадок, связанных с устаревшими командами. Важно помнить, что для применения изменений в конфигурации существует команда reload, которая позволит обновить настройки без разрыва текущих соединений.

Если вы будете следовать приведенным рекомендациям, вы сможете эффективно управлять сервисами и поддерживать безопасность своих систем.

Оцените материал
Добавить комментарий

Капча загружается...