Сброс пароля на удаленном сервере FreeBSD

Основной метод аутентификации на серверах FreeBSD – использование ключей SSH. Как правило, вход с помощью ключей SSH предоставляет ряд преимуществ безопасности по сравнению с парольной аутентификацией, однако в некоторых ситуациях он может также стать причиной блокировки вас на вашем собственном сервере. В этих случаях вы можете установить пароль, чтобы иметь возможность войти на свой сервер с помощью консоли.

Читайте также: Начало работы с FreeBSD 

Общий план

Когда во время создания вы добавляете на свой виртуальный сервер ключи SSH, учетная запись пользователя на сервере не имеет пароля (по соображениям безопасности).

Однако в некоторых ситуациях вам, вероятно, придется входить в систему с помощью нетрадиционных методов: например, если вы потеряли ключ SSH или параметры вашего сервера настроены неверно, вы не сможете пройти аутентификацию по ключам SSH.

Большинство хостинг-провайдеров для подобных случаев предлагают воспользоваться панелью управления. Почти во всех операционных системах вы можете создать пароль на странице администратора сервера (в разделе типа Доступ). Как правило, сгенерированный пароль приходит на почту, после чего его можно использовать по SSH или в панели управления сервером, чтобы получить доступ к машине.

Однако, эта функция не работает для FreeBSD, тут нужна другая процедура.

Чтобы установить или сбросить пароль для учетной записи пользователя во FreeBSD, нужно перезагрузить сервер из панели управления, затем перейти в консоль сервера и загрузить его в однопользовательском режиме. Здесь можно смонтировать файловую систему и установить пароль для учетной записи.

В этом мануале пошагово описан процесс установки или сброса пароля для сервера FreeBSD.

Отключение сервера

Для начала нужно остановить сервер FreeBSD. На данном этапе проблема, как правило, заключается в отсутствии доступа к командной строке.

Итак, если у вас остался доступ к командной строке, вы можете отключить сервер с помощью команды:

sudo shutdown -p now

Если (как бывает в большинстве случаев) у вас нет такого доступа, вы можете остановить сервер с помощью специальной кнопки в панели управления сервером.

Эта кнопка попытается корректно завершить работу сервера – так же, как это сделала бы команда, если бы вы могли запустить ее. Если же это не удастся, она выполнит жесткое отключение.

В любом случае, сервер прекратит работу, после чего можно двигаться дальше.

Перевод сервера в однопользовательский режим

Консоль управления сервером – это виртуальный интерфейс, который эмулирует физическое соединение с вашим сервером. Благодаря ему вы можете войти на свой сервер, даже если сеть сервера настроена неправильно.

Еще одним преимуществом консоли является доступ к меню загрузки. Воспользовавшись этим меню, вы сможете загрузиться в однопользовательском режиме.

Однопользовательский режим — это специальный режим администратора, доступ к которому возможен только при физическом подключении к серверу. Это позволяет пользователю root войти в систему без пароля. Внешние сети, второстепенные сервисы и дополнительные учетные записи в нем отключены. Поскольку консоль сервера эмулирует физическое соединение, вы можете подключиться к серверу в однопользовательском режиме.

Процедура немного отличается в зависимости от провайдера, но в общем требует от вас быстрого выполнения нескольких последовательных действий. Вы должны:

  • Включить сервер, используя кнопку в панели управления.
  • Нажать на кнопку Доступ к консоли (Console Access или что-то подобное), чтобы получить доступ к панели сервера.
  • Выбрать однопользовательский режим (здесь в меню может быть таймер ожидания, и вы должны успеть до истечения времени).

Затем вы попадете в консоль сервера и меню загрузки. Когда появится меню загрузки, выберите однопользовательский режим. Ваш сервер начнет загружаться в режиме ограниченного однопользовательского управления.

Перемонтирование файловой системы

По мере загрузки FreeBSD в однопользовательском режиме вы будете просматривать сообщения. В конце вы увидите следующее сообщение:

Enter full pathname of shell or RETURN for /bin/sh:

Нажмите Enter, чтобы запустить сеанс оболочки.

На данный момент у вас есть доступ к ограниченной среде оболочки. Однако файловая система, содержащая информацию о пароле, монтируется только для чтения, а это означает, что вы не можете редактировать пароли.

Чтобы перемонтировать файловую систему root в режиме чтения и записи, введите:

mount -u /

Это откроет доступ к базе данных паролей системы и позволит установить новый пароль.

Примечание: Если эта команда была выполнена неудачно и вернула сообщение «Filesystem is not clean», сервер не смог правильно завершить работу. В этом случае перейдите к разделу «Устранение неполадок».

Если приведенная выше команда выполнена успешно, FreeBSD сможет перемонтировать все файловые системы, что даст вам синхронный доступ:

mount -a

Теперь можно сбросить пароль.

Смена пароля сервера

После того как файловая система была смонтирована, вы можете установить или сбросить пароль любой учетной записи в системе, используя команду passwd.

Чтобы установить или сбросить пароль для учетной записи пользователя freebsd по умолчанию, вы можете набрать:

passwd freebsd

Вам будет предложено выбрать и подтвердить новый пароль. Эта учетная запись по умолчанию имеет доступ к sudo, поэтому обычно это единственный пароль, который вам нужно установить.

Если же вам нужно установить пароль для учетной записи пользователя root, вы можете сделать это с помощью команды:

passwd

Опять же, вам нужно будет выбрать и подтвердить пароль.

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

exit

FreeBSD выйдет из однопользовательского режима и выполнит обычную загрузку сервера. На этом этапе вы можете войти в систему с помощью пароля, который вы выбрали – через консоль или по SSH (при условии, что вы не ограничивали вход в систему парольной аутентификацией).

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

Устранение неполадок: очистка файловой системы после некорректного завершения работы

Иногда при отключении сервера с помощью панели управления процедура выполняется неудачно. Это бывает по разным причинам, чаще всего из-за условий внутри самого сервера.

В таком случае выполняется жесткое отключение – принудительное отключение питания. Это может привести к нестабильному состоянию диска, что мешает нормальному монтированию. Потому при попытке смонтировать файловую систему в режиме чтения и записи вы увидите такую ошибку:

mount: /devgtp/rootfs: R/W mount of / denied. Filesystem is not clean

Чтобы исправить файловую систему, вы должны запустить команду fsck.

Примечание: При использовании на активных дисках запуск команды fsck иногда приводит к повреждению данных. По этой причине мы запускаем fsck в несмонтированной файловой системе, чтобы минимизировать этот риск. Проблемы также могут возникнуть, если во время отключения на диск записывались важные данные. Большинство пользователей с подобным не сталкиваются, но это всегда возможно при жестком отключении сервера.

Чтобы устранить несоответствие, мы можем попытаться автоматически исправить ошибки:

fsck

Система проверит файловую систему, время от времени требуя, чтобы вы подтвердили предложенное действие нажатием клавиши y. Обычно лучше принимать то, что предлагает система, так как альтернатив для устранения проблем с диском не так уж много.

После завершения проверки файловая система будет помечена как чистая:

***** FILE SYSTEM MARKED CLEAN *****

Теперь можно вернуться к монтирования файловой системы. Для этого введите:

mount -u /
mount -a

Установите пароль для нужных вам учетных записей:

# To set the freebsd user account password, type:
passwd freebsd
# To set the root user password, type:
passwd

После установки паролей выйдите из однопользовательского режима, чтобы возобновить нормальную загрузку сервера:

exit

Tags: