Установка и изменение пароля на заблокированном сервере FreeBSD

Как правило, для входа на сервер 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: ,