web-dev-qa-db-ja.com

Luks、SSHロック解除、奇妙な動作、無効なauthorized_keysファイル

理由はわかりませんが、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

ありがとうございました!

3
tobiasBora

#debianの助けを借りて、ようやく解決策を見つけました。最近のdebianでは、手順がかなり異なっているようです。これが新しいものです:

まず、dropbeardropbear-initramfsがインストールされている

Sudo apt install busybox dropbear*

次に、公開鍵を追加します(ほとんどの場合~/.ssh/id_rsa.pub)ファイル内/etc/dropbear-initramfs/authorized_keys

次にinitramfsを更新して、変更を考慮します。:update-initramfs -u

それで全部です!

注:dropbearopensshの間のキーの衝突を避けたい場合(それらは同じ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

楽しい!

4
tobiasBora

さらにいくつかの詳細。

最初に、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アカウントが無効になっている場合でも)。

1
solitone