Установка и изменение пароля на заблокированном сервере FreeBSD
FreeBSD, SSH | Комментировать запись
Как правило, для входа на сервер FreeBSD используются ключи SSH. Конечно, аутентификация на основе SSH имеет ряд преимуществ безопасности по сравнению с аутентификацией на основе пароля; однако при этом вполне могут возникнуть обстоятельства, в которых вы случайно заблокируете себя на собственном сервере. В таких случаях необходимо установить пароль, чтобы вернуть доступ к серверу. Это можно сделать через консоль.
Данное руководство поможет установить пароль для сервера FreeBSD, если вы случайно заблокировали доступ к собственному серверу.
Основные действия
При использовании SSH-ключей для аутентификации сервер не защищён паролем.
Однако в некоторых ситуациях пароль может пригодиться. Например, если SSH-ключ был утерян или сбились внутренние сетевые настройки, вы не сможете аутентифицироваться при помощи ключей.
Чтобы восстановить доступ к серверу, рекомендуется обратиться к консоли управления сервером, при помощи которой можно создать пароль (опции Reset Root Password, Access или другой похожий вариант, предложенный консолью).
Большинство операционных систем генерирует пароль и отправляет его пользователю на электронный ящик. Однако такая функция недоступна в системе FreeBSD.
Чтобы установить или переустановить пароль в FreeBSD, нужно перезапустить сервер при помощи панели управления. Затем нужно открыть веб-консоль, чтобы загрузить сервер в однопользовательском режиме. Здесь можно смонтировать файловую систему и установить пароль для учётной записи пользователя.
1: Отключите сервер
Для начала нужно остановить сервер. На данном этапе проблема состоит в том, что у вас, скорее всего, нет доступа к командной строке.
Если доступ к командной строке всё же есть, просто используйте её для того чтобы остановить сервер.
sudo shutdown -p now
Если доступа нет (как бывает в большинстве случаев), откройте панель управления и нажмите кнопку вроде Power Off (или другую аналогичную кнопку).
Эта кнопка является аналогом упомянутой выше команды и попробует корректно остановить работу сервера. В любом случае она остановит сервер, что позволит вам продолжить работу.
2: Перейдите в однопользовательский режим
Как правило, хостинг-провайдеры предоставляют пользователям веб-консоль, эмулирующую физическое подключение к серверу.
Она позволяет восстановить доступ к серверу даже в случае, если сбились настройки сети.
Еще одним преимуществом виртуальной консоли является меню загрузки. Воспользовавшись этим меню, вы можете загрузить сервер в однопользовательском режиме.
Однопользовательский режим – это особый административный режим, который можно получить только при физическом подключении к серверу. Он позволяет пользователю root войти без пароля. Внешние сети, второстепенные сервисы, а также дополнительные логины отключаются. Поскольку веб-консоль эмулирует физическое соединение, она позволяет загрузиться в однопользовательском режиме.
Следующие действия нужно выполнить быстро:
- Включите сервер при помощи консоли.
- Нажмите Console Access, чтобы получить доступ к виртуальной консоли.
- Выберите single-user mode (однопользовательский режим) в меню загрузки.
Эти действия следует выполнить в течение нескольких секунд.
3: Перемонтируйте файловую систему
На экране появится сообщение о том, что система пытается смонтировать файловую систему root. Нажмите Enter в командной строке, чтобы запустить сессию оболочки.
Теперь у вас есть ограниченный доступ к окружению. Тем не менее, файловая система, которая содержит информацию о пароле, доступна только для чтения, а это означает, что вы не можете изменить или установить пароль.
Перемонтируйте файловую систему root в режим read/write:
mount -u /
После этого у вас появится доступ к базе паролей системы.
Примечание: Если эта команда завершается ошибкой с сообщением «Filesystem is not clean», значит, работа сервера была завершена некорректно. Перейдите к разделу «Устранение неполадок».
Если команда была выполнена успешно, можно перемонтировать файловую систему и получить синхронный доступ:
mount -a
После этого можно попробовать установить или переустановить пароль.
4: Установите пароль
Итак, файловая система подготовлена. Измените пароль пользователя при помощи команды passwd.
Чтобы установить/переустановить пароль стандартного пользователя freebsd, наберите:
passwd freebsd
Система предложит выбрать и подтвердить новый пароль. У стандартного пользователя по умолчанию есть доступ к sudo, потому достаточно изменить только его пароль.
Если вы хотите изменить пароль пользователя root, введите:
passwd
После этого нужно выбрать и подтвердить новый пароль.
Получив пароль, можете выйти из однопользовательского окружения:
exit
FreeBSD выйдет из однопользовательского режима и выполнит обычную загрузку сервера. Теперь вы можете войти при помощи пароля или SSH (если аутентификация на основе пароля разрешена для сессий SSH).
Если во время выполнения руководства у вас возникли какие-либо ошибки, читайте следующий раздел.
5: Устранение неполадок
Иногда при отключении сервера через панель управления эта процедура проходит некорректно. Это может произойти по разным причинам, чаще всего из-за внутренних условий самого сервера.
В таком случае будет применено «жёсткое» отключение сервера, что может привести к противоречиям на дисках и запретить монтирование файловой системы.
Если при монтировании файловой системы вы столкнулись с ошибкой:
Operation not permitted
Нужно запустить команду fsck для того, чтобы исправить файловую систему.
Примечание: Запуск команды fsck иногда может привести к повреждению данных на активных дисках. По этой причине рекомендуется запускать fsck на демонтированной файловой системе, чтобы минимизировать риск. Проблемы всё-таки могут возникнуть в ситуациях, когда значительный объем данных записывался на диск в момент отключения питания.
Чтобы исправить несовместимость, попробуйте автоматически исправить ошибки:
fsck
Команда запустит проверку файловой системы; при этом может потребоваться подтверждение операции (для этого введите y).
После этого файловая система будет очищена от ошибок и помечена как clean.
Далее нужно выполнить следующие действия.
Смонтируйте файловую систему:
mount -u /
mount -a
Установите пароль для требуемого пользователя:
# для пользователя freebsd:
passwd freebsd
# для пользователя root:
passwd
Закройте однопользовательское окружение:
exit
Выполните загрузку сервера в обычном режиме.
Tags: FreeBSD, SSH