Вопрос или проблема
Я попытался разрешить группе пользователей “студенты” использовать вход по паролю через ssh, добавив строки:
Match Group students
PasswordAuthentication yes
в конец файла /etc/ssh/sshd_config
.
Затем, так как сервер работал уже около 3 недель, я решил выполнить полное yum update
и перезагрузить систему.
С этого момента он перестал загружаться.
При загрузке я вижу вращающийся круг линий в течение некоторого времени, затем переход на черный экран с серой полосой слева, где процесс зависает.
Нажимая ctrl-alt-F2
, я вижу зацикленный
A start job is running for Hold until boot process finishes up (x/no limit)
Через некоторое время это сообщает:
[FAILED] Failed to start OpenSSH server daemon.
и цикл начинается снова. См. изображение для полного примера.
Я загрузился в режим одиночного пользователя и отменил свои изменения в конфигурационном файле, проблема осталась.
(Чтобы уменьшить возможные ошибки, я подключил монитор к встроенной графике, а не к графическому процессору nVidia, так как подозреваю, что также может быть проблема с драйверами GPU, так как при подключении к GPU я вместо этого получал экран “упс, появилась проблема”.)
ОБНОВЛЕНИЕ:
Выяснилось, что SELinux не позволял sshd
читать sshd_config
, из-за чего возникал цикл. Запуск restorecon
на sshd_config
не исправил проблему, поэтому я отключил SELinux.
Теперь процесс загрузки зависает на одной бесконечной задаче запуска при загрузке в Runlevel 5. Я подозреваю, что это связано с драйверами GPU, так как система по-прежнему зависает с экраном “упс”, когда монитор подключен к GPU, встроенная графика работает лучше.
На этом моменте у меня закончилось время на решение проблемы. Поскольку эта машина является бесголовым вычислительным сервером, я просто загружаюсь в Runlevel 3, который, похоже, работает нормально. Я переустановил последние драйверы nVidia, но это не изменило ситуацию.
Даже программы, требующие CUDA, похоже, работают правильно, так что я считаю это достаточно хорошим в отсутствии каких-либо дальнейших советов от сообщества.
Я предлагаю загрузиться в режим восстановления, чтобы
- отменить изменения
- изучить журналы sshd, чтобы понять, в чем может быть проблема
Нажатие control + alt + del во время загрузки системы должно вызвать ее плавную перезагрузку, так как systemd должен перехватывать это нажатие клавиши.
Пожалуйста, посмотрите комментарии к ответу Рубена Чахмакхтчиана, чтобы увидеть путь, который я прошел, чтобы дойти до этого места, и смотрите мое обновление к вопросу для получения дополнительных деталей.
Проблема оказалась связана с тем, что SELinux не позволял sshd
прочитать sshd_conf
. Несмотря на все мои попытки сбросить разрешения и разрешить чтение, мне это никогда не удавалось.
В интересах “время – деньги” я отключил SELinux. Теперь sshd
может правильно читать sshd_conf
, так что машина загружается в многопользовательский режим нормально, и можно удаленно подключиться через ssh.
Мне так и не удалось исправить загрузку в графическую среду. Я думаю, что проблема здесь не связана. Поскольку эта машина является бесголовым исследовательским сервером, я не углублялся дальше в это.
Ответ или решение
Проблема с неудачным запуском демона OpenSSH на CentOS 8, которая возникла после изменения конфигурации sshd и обновления системы, может быть вызвана несколькими факторами. Разберем основные моменты и возможные пути решения.
Описание проблемы
После внесения изменений в файл /etc/ssh/sshd_config
, позволяющих группе пользователей "students" использовать аутентификацию по паролю, и последующего обновления системы с помощью yum update
, вы столкнулись с проблемами загрузки сервера. В процессе загрузки система застревает на сообщении о том, что не удалось запустить демон OpenSSH, и выводится сообщение о задержке в загрузке.
Первые шаги к устранению неисправностей
-
Режим однопользовательской загрузки (Single User Mode):
- Перезагрузите сервер и войдите в режим однопользовательской загрузки. Это можно сделать, добавив в параметры загрузки (GRUB)
systemd.unit=rescue.target
. - После загрузки введите команду для редактирования файла конфигурации SSH:
nano /etc/ssh/sshd_config
- Убедитесь, что строки
Match Group students
иPasswordAuthentication yes
правильно добавлены в файл и не конфликтуют с другими настройками.
- Перезагрузите сервер и войдите в режим однопользовательской загрузки. Это можно сделать, добавив в параметры загрузки (GRUB)
-
Проверка настроек SELinux:
- Как вы уже заметили, SELinux мог блокировать доступ демона SSH к файлу конфигурации. Чтобы диагностировать это, выполните:
ausearch -m avc -ts recent
- Если там есть записи о том, что доступ к
sshd_config
был заблокирован, вы можете восстановить контекст SELinux с помощью:restorecon -v /etc/ssh/sshd_config
- Если это не сработает, временно можно отключить SELinux командой:
setenforce 0
- Как вы уже заметили, SELinux мог блокировать доступ демона SSH к файлу конфигурации. Чтобы диагностировать это, выполните:
-
Логи sshd:
- Проверьте логи SSH для получения более подробной информации о проблеме:
journalctl -xe | grep sshd
- Проверьте логи SSH для получения более подробной информации о проблеме:
Решения
-
Если у вас не получается восстановить права доступа и устранить ошибки SELinux, временное решение состоит в том, чтобы отключить SELinux, как вы и сделали. Это следует рассматривать как временную меру, так как отключение SELinux может снизить безопасность системы.
-
Если после этого вы столкнулись с проблемами при загрузке в графическую среду, синхронизируйтесь с последними обновлениями драйверов NVIDIA. Возможно, они требуют дополнительной настройки или проверки зависимости.
Убедитесь, что у вас установлены необходимые программные пакеты для работы системы с графической оболочкой. Например:
dnf groupinstall "Graphical Desktop"
Итог
На данном этапе вы смогли восстановить доступ к серверу в режиме многопользовательской работы (Runlevel 3) и обеспечить возможность подключения по SSH. Важно продолжить исследование проблем с графическим интерфейсом, если такая функция будет необходима в будущем. Вместе с тем, рекомендуется периодически проверять обновления и настройки SELinux, чтобы повысить уровень безопасности сервера.