Start typing to search across invoices, services, domains, tickets, and more...
サーバーの root パスワードを紛失し、鍵認証によるログインも設定していない場合、SSH ではもうログインできません。しかし、サーバーのコンソールにアクセスできれば、起動時にパスワードをリセットできます。本ガイドでは、GRUB で rd.break を使う方法(RHEL 系)、init=/bin/bash を使う方法(汎用)、レスキューモードからディスクをマウントする方法の3つを紹介します。いずれも OS を再インストールしたりデータを失ったりすることなく、アクセスを取り戻せます。
rd.break を追加して root パスワードをリセットする方法が推奨され、SELinux にファイルコンテキストを再ラベル付けさせるため touch /.autorelabel の実行が欠かせません。linux 行に init=/bin/bash を追加し、passwd root でパスワードをリセットする方法が推奨されます。chroot 経由で root パスワードを変更できます。rd.break を推奨)、Ubuntu 22.04/24.04、Debian 12(init=/bin/bash を推奨)。CentOS 7 などの古いシステムでも rd.break が使えます。VNC コンソールで Ctrl+Alt+Del を送信するか、クライアントセンターから再起動します。GRUB の起動メニューが表示されたら、すぐに矢印キーを押してカウントダウンを止めます。Ubuntu はデフォルトでメニューを非表示にしているため、起動中に Shift を押し続ける(BIOS)か、Esc を連打する(UEFI)とメニューを表示できます。
デフォルトのカーネルを選択して e を押し、編集モードに入ります。linux で始まる行を探してください(RHEL 系では linux または linuxefi の場合があります)。
linux 行の末尾に rd.break を追加します。console=ttyS0 のようなシリアルコンソールのパラメータがあり、VNC に何も表示されない場合は、それを削除してください。Ctrl+X で起動し、switch_root:/# プロンプトで次のコマンドを実行します。
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel
exit
exit
touch /.autorelabel は必須です。これにより SELinux が次回起動時にファイルコンテキストを再ラベル付けします。これを忘れると、/etc/shadow のラベルが正しくないためにログインできなくなることがあります。再ラベル付けには数分かかり、システムは自動でもう一度再起動しますので、しばらくお待ちください。
linux 行で ro を rw に変更し、quiet splash を削除して、末尾に init=/bin/bash を追加します。Ctrl+X または F10 で起動し、root@(none):/# プロンプトで次のコマンドを実行します。
mount -o remount,rw /
passwd root
sync
exec /sbin/init
このモードでは systemd が動いていないため、通常の reboot コマンドは機能しません。代わりに exec /sbin/init で通常の起動を続行します。システムが固まった場合は、VNC で echo b > /proc/sysrq-trigger を実行して強制再起動できます(必ず先に sync を実行してください)。
ヒント:
init=/bin/bashは RHEL 系でも使えますが、その後にtouch /.autorelabelが必要な点は変わりません。
GRUB にパスワードが設定されている場合や、VNC でメニューが表示されない場合は、レスキューシステムを使います。クライアントセンターにレスキューモードの項目がない場合は、チケットを送信してレスキュー ISO のマウントを依頼してください。レスキューシステムに入ったら、次を実行します。
lsblk -f # Find the original root partition, e.g. /dev/vda1
mount /dev/vda1 /mnt
# If the root partition is on LVM, run vgchange -ay first, then mount /dev/mapper/xxx-root
for d in dev proc sys; do mount --bind /$d /mnt/$d; done
chroot /mnt passwd root
touch /mnt/.autorelabel # Only needed on SELinux systems (Rocky/Alma)
umount -R /mnt
reboot
新しいパスワードで SSH ログインします。それでも Permission denied と表示される場合は、/etc/ssh/sshd_config.d/ で root のパスワードログインが無効化されていないか確認してください。その場合は VNC からログインし、代わりに SSH 鍵を設定しましょう。リセットが終わったら、すぐに鍵認証を設定し、パスワードはパスワードマネージャーに保管することをおすすめします。
消えません。これらの方法で変更するのは /etc/shadow 内のパスワードハッシュだけで、Web サイトやデータベースなどの業務データには触れません。ただし、コンソールでの作業には操作ミスのリスクがあるため、事前にバックアップを取ってください。
最も多い原因は touch /.autorelabel の実行漏れで、SELinux が新しい shadow ファイルの読み取りを拒否しています。もう一度 rd.break で起動し、このコマンドを実行してください。
一部のクラウド製品ではオンラインでのリセットに対応している場合がありますが、イメージ内のエージェントや製品の種類によって異なります。IMIDC クライアントセンターの製品詳細ページで実際に利用できる機能をご確認ください。該当する項目がない場合は、本ガイドの手順で手動で行うか、チケットを送信してください。
キーボードレイアウトが一致していない可能性があります。特殊文字は避け、まずはシンプルな一時パスワードを設定し、SSH でログインしてから passwd で強固なパスワードに変更してください。
コンソールへのアクセスさえあれば、root パスワードを忘れても再インストールは不要です。RHEL 系では rd.break を使い、SELinux の再ラベル付けを忘れずに。Debian/Ubuntu では init=/bin/bash を使い、GRUB が使えない場合はレスキューモードに切り替えましょう。IMIDC のクラウド VPS には、このような緊急復旧に使える VNC コンソールが付属しています。専用サーバーのリモート操作やレスキューが必要な場合は、クライアントセンターからチケットを送信してください。技術チームが 24時間365日対応します。