Dropbear SSH自習
このスクラップの内容は整理して『Linuxの暗号化解除をコンソール以外で行うためにClevis-TangとDropbaerを使うGitHubで開く』に公開しました。
スクラップは閉じます。
ルート暗号化されたUbuntuをブート中にSSH接続してユーザーが暗号解除する方法について学ぶ。暗号化されたUbuntuのルートファイルシステムをリモートから復号する方法をなぞる。
- Ubuntu 24.04 Server
方法としてはdropbare SSHをinitramfsに組み込み、そこに接続する。SSHの認証キーは通常作業と同じものを使うものとする。
sudo apt install dropbear-initramfs
Configurationファイルを変更して、SSHのポートを2222にする。これはinitramfsと本体で同じIPアドレスを使いまわす場合、ポートまで同じだとホストキーが異なることへのエラーが出るから。
#
# Command line options to pass to dropbear(8)
#
DROPBEAR_OPTIONS="-p 2222"
自分の認証済みSSHキーをコピーしてinitramfsをアップデートする。
sudo cp /home/seiichi/.ssh/authorized_keys .
sudo update-initramfs -u -k all
再起動後、sshで接続できるようになる。試験的に起動するときにはコンソールにDHCPが取得したIPアドレスが表示されるのでそれをめがけてSSH接続すればいい。ユーザー名はroot。
ssh -p 2222 root@xxx.xxx.xxx.xxx
ログイン出来たらcryptroot-unlockを実行する。
cryptroot-unlock
これで暗号解除パスフレーズの入力を促される。入力すると接続先のルート・ドライブの暗号が解除され、起動される。
SSHから接続するためにはIPアドレスを固定しなければならない。固定するアドレスはDHCPが付与するアドレスレンジの外である。まず。GRUBの設定ファイルを書き換える。
GRUB_CMDLINE_LINUX="ip=192.0.2.100::192.0.2.1:255.255.255.0:fde:enp5s0:none"
ここで、ip=の後には引数を":"で区切って書く。最初から順番に
- initramfsで使用するIPアドレス
- NFSサーバーのIPアドレス(省略可)
- ゲートウェイのIPアドレス
- ネットマスク
- ホスト名
- インターフェース名
- 自動設定方法
インターフェース名は本体が立ち上がったときに利用しているデバイス名を与えた。
修正を保存したらgrubを更新して再起動する。
sudo update-grub
以上で、以下の様な固定IPアドレスに対してSSH接続し、cryptroot-unlockでルートディスクの暗号を解除できる。
ssh -p 2222 root@192.168.222.101
この解除はclavisによる暗号解除と並行して走るので、
- コンソールからの解除
- Clavisからの解除
- SSH接続からの解除
いずれか一番早い解除によって起動する。