initrdでsshdを実行するための固定ソリューションはありますか?

initrdでsshdを実行するための固定ソリューションはありますか?

これは主にDebian / Ubuntu用ですが、ソリューションを互いに適用するのに十分な数のディストリビューションについて十分に知っていると思います。

これが私のシナリオです。場合によっては、起動中にinitrdのシェル(通常はbusybox)に移動します。特に、ハードウェアRAIDを実行するたびに、新しいカーネルバージョンごとにドライバを再構築する必要があります。完全に起動したシステムのように、構造システムにアクセスできるようにしたいです。

私はシェルと(OpenSSHまたはdropbear)の静的ビルドをinitrdに入れることができると思い、必要sshdに応じて調整できる既存のソリューションを探していました。

既存のソリューションがないと仮定すると(長い間検索してきたため)、可能であれば静的ビルドを使用したりライブラリを提供したりする以外に何を考慮する必要がありますか? dropbearの静的ビルドを単純にキャッシュし、「変換された」OpenSSHと元のホストキー/etc/initramfs-tools/hooksと一緒に含めることは合理的ですか?sshd_config

答え1

Ubuntu 16.04には次のパッケージが含まれています。dropbear-initramfsこの機能を提供する必要があります。

軽量SSH2サーバーとクライアント - initramfs統合dropbearは、小さなメモリー環境で使用できるほど小さく、通常の用途に使用できるほど強力で安全に設計されたSSH 2サーバーとクライアントです。

これは、SSH 2 プロトコルの必須機能の大部分と、X11 や認証プロキシ転送などの追加機能を実装します。

このパッケージは initramfs 統合を提供します。

そのパッケージをインストールすることに加えて、調整する必要がある唯一の項目は次のとおりです。

  1. DROPBEAR=y内部でコメントアウトされた内容をキャンセルします。/etc/initramfs-tools/conf-hooks.d/dropbear
  2. 既存のホストキー変換(下記参照)
  3. そのためにマウントをバインドすることを/etc/initramfs-tools/root/.ssh/authorized_keys選択しました。/root/.ssh/etc/initramfs-tools/root/.ssh
  4. 最後に、update-initramfs -u -k allすべてのinitrdイメージを再生成しました。

キーを変換するために、次のコマンドを実行しました。

/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key
/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_dsa_key /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
/usr/lib/dropbear/dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key /etc/initramfs-tools/etc/dropbear/dropbear_ecdsa_host_key

メモ:ソースファイルとターゲットファイル名が異なります。だからここでは家庭をしないでください。また/usr/lib/dropbear私のものではないPATHので、実行へのフルパスを提供する必要がありますdropbearconvert

関連情報