質問: sshは、ヘッドレスサーバーの起動中に暗号化されたlvmを復号化しますか? ubuntu 10.04をインストールすると、現在10.10で、ハードドライブの「暗号化lvm」を有効にするオプションが提供されました。このオプションを選択すると、起動時にlvmを復号化するためのパスワードの入力を求められます。現在、linux(ubuntuとは限らない)を実行するヘッドレスサーバーをセットアップすることを考えていますが、サーバーがヘッドレスであるため、起動時にサーバーを解読できないのではないかと心配しています。起動中にsshでsshにログインして、暗号化されたlvmのパスワードを入力できますか?もしそうなら、私はそれをどのように設定しますか?または別の解決策はありますか?繰り返しますが、この質問はubuntuに固有のものではありません。ありがとう。
回答: /usr/share/doc/cryptsetup/readme.remote.gz(ubuntuパッケージcryptsetup)にあるcryptsetup readmeをご覧ください。これを達成するための完全なガイドがあります。 dragly's answer に似ていますが、これはもう少しエレガントだと思います。 (dropbear形式のキー、パスフレーズをfifoなどで渡す) initramfsのsshログインによるrootfsのロック解除 リモートからの起動時にrootfsのロックを解除できます。initramfsがマウントされた状態で実行中に、sshを使用して起動システムにログインします。 セットアップ リモートロック解除を機能させるには、initramfsをビルドする前に、次のパッケージをインストールする必要があります。dropbear busybox ファイル/etc/initramfs-tools/initramfs.confには、initramfsのビルド時に使用される構成オプションが含まれています。 initramfsにbusyboxをインストールするためには、busybox=y(busyboxパッケージのインストール時にデフォルトとして設定されます)を含める必要があります。また、initramfsへのdropbearのインストールを無効にするdropbear=nを含めないでください。 dropbear=yに設定すると、dropbearはどのような場合でもインストールされます。 dropbearがまったく設定されていない場合、dropbearは既存のcryptrootセットアップの場合にのみインストールされます。 initramfsに使用されるホストキーはdropbear_dss_host_keyとdropbear_rsa_host_keyで、どちらも/etc/initramfs-tools/etc/dropbear/にあります。 initramfsのコンパイル時に存在しない場合は、自動的に作成されます。手動で作成するコマンドは次のとおりです。 dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key dropbearkey -t rsa -f /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key initramfsは暗号化されないため、公開鍵認証が想定されます。そのために使用されるキーは/etc/initramfs-tools/root/.ssh/authorized_keysから取得されます。 initramfsのコンパイル時にこのファイルが存在しない場合は作成され、/etc/initramfs-tools/root/.ssh/id_rsa.pubが追加されます。後者のファイルも存在しない場合は、自動的に生成されます。一致する秘密鍵は、後で/etc/initramfs-tools/root/.ssh/id_rsa(またはid_rsa.dropbear)でinitramfsにログインする必要があります。 dropbear形式で必要です)。以下は、それぞれの手順を手動で実行するコマンドです。 キーを作成するには(dropbear形式): dropbearkey -t rsa -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear キーをdropbear形式からopenssh形式に変換するには: /usr/lib/dropbear/dropbearconvert dropbear openssh \ /etc/initramfs-tools/root/.ssh/id_rsa.dropbear \ /etc/initramfs-tools/root/.ssh/id_rsa 公開鍵を抽出するには: dropbearkey -y -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear | \ grep "^ssh-rsa " > /etc/initramfs-tools/root/.ssh/id_rsa.pub 公開鍵をauthorized_keysファイルに追加するには: cat /etc/initramfs-tools/root/.ssh/id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys dhcpを使用して設定するインターフェースが必要な場合は、device=に/etc/initramfs-tools/initramfs.confを設定するだけで十分です。 initramfsはip=カーネルパラメータも尊重する必要があります。 grubを使用する場合は、おそらく/boot/grub/menu.lstの '# kopt='行に設定するか、特定の 'kernel'行に追加することをお勧めします。 ip=カーネルパラメータは、カーネルソースツリーのdocumentation/nfsroot.txtに記載されています。 問題 設定を変更して効果的なものにした場合は、必ずupdate-initramfsを実行してください。 sshデーモンのために十分なエントロピーを収集することは、時々問題となるようです。十分なエントロピーが取得されるまで、sshデーモンの起動が遅れる可能性があります。これは起動プロセスをブロックしないため、コンソールにいるときは、sshdが起動を完了するのを待つ必要はありません。 ロック解除手順 リモートからロックを解除するには、次のようにします。 ssh -o "userknownhostsfile=~/.ssh/known_hosts.initramfs" \ -i "~/id_rsa.initramfs" root@initramfshost.example.com \ "echo -ne \"secret\" >/lib/cryptsetup/passfifo" この例では、cryptrootシステムのホストキーを保持する追加のknown_hostsファイル "~/.ssh/known_hosts.initramfs"があり、ファイルの承認済みキーを保持するファイル "~/id_rsa.initramfs"があることを前提としています。 cryptrootシステム、cryptrootシステムの名前は「initramfshost.example.com」、cryptrootパスフレーズは「secret」 -<debian@x.ray.net>、水曜日、2009年9月30日 jap のおかげで、これを別のチャネルで私に指摘してくれました。