Вопрос или проблема
Как правильно перезапустить 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 можно использовать следующие команды:
-
Перезапуск сервиса
sudo systemctl restart ssh.service
-
Перезагрузка демона без остановки сервиса
Если вам нужно применить изменения в конфигурации, но не хотите разрывать текущие соединения, можно воспользоваться командой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
, которая позволит обновить настройки без разрыва текущих соединений.
Если вы будете следовать приведенным рекомендациям, вы сможете эффективно управлять сервисами и поддерживать безопасность своих систем.