理由はわかりませんが、debianの安定版で これらの手順 にどうにか従うことができません。 dropbearとbusyboxをインストールした後、initramfs -u
を実行してみました。ここに奇妙な警告が出ました:
# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.0-4-AMD64
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
次に、/etc/initramfs-tools/root/.ssh/id_rsa
ファイルを調べようとしましたが、initramfsフォルダーにroot
フォルダーがありません。私も走ってみました
dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_Host_key
ただし、フォルダ/etc/initramfs-tools/etc/
がないため、このコマンドも失敗します。もちろん、これらのフォルダを作成することはできますが、この奇妙な動作は、より深いエラーが原因ではないのではないかと心配しています。役立つ場合は、initramfsフォルダーの内容を次に示します。
me@server:/etc/initramfs-tools# ls
conf.d hooks initramfs.conf modules scripts update-initramfs.conf
ありがとうございました!
#debianの助けを借りて、ようやく解決策を見つけました。最近のdebianでは、手順がかなり異なっているようです。これが新しいものです:
まず、dropbear
とdropbear-initramfs
がインストールされている
Sudo apt install busybox dropbear*
次に、公開鍵を追加します(ほとんどの場合~/.ssh/id_rsa.pub
)ファイル内/etc/dropbear-initramfs/authorized_keys
。
次にinitramfs
を更新して、変更を考慮します。:update-initramfs -u
それで全部です!
注:dropbear
とopenssh
の間のキーの衝突を避けたい場合(それらは同じIPを共有しますが、異なるキーを使用します)、クライアント~/.ssh/config
そんな感じ:
Host myserver_luks_unlock
User root
Hostname <myserver>
# The next line is useful to avoid ssh conflict with IP
HostKeyAlias <myserver>_luks_unlock
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
次に、以下を使用して接続します。
ssh myserver_luks_unlock
プロンプトが表示されたら、busyboxテキストで提案されているとおりに入力します。
cryptroot-unlock
楽しい!
さらにいくつかの詳細。
最初に、sshクライアントにまだ秘密鍵と公開鍵のペアがない場合は、次に示すように、ssh-keygen
を使用して生成する必要があります here 。
第二に、私はあなたがする必要があることを指定します:
クライアントの公開鍵(ほとんどの場合〜/ .ssh/id_rsa.pub)をファイル/ etc/dropbear-initramfs/authorized_keysに追加しますサーバー
方法は次のとおりです。クライアント:
c_user@client:~$ scp .ssh/id_rsa.pub s_user@server:id_rsa.pub
サーバー上:
s_user@server:~$ Sudo sh -c "cat id_rsa.pub >> /etc/dropbear-initramfs/authorized_keys"
s_user@server:~$ rm id_rsa.pub
最後に、rootとしてサーバーに接続することが非常に重要です(rootアカウントが無効になっている場合でも)。