これは主に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 統合を提供します。
そのパッケージをインストールすることに加えて、調整する必要がある唯一の項目は次のとおりです。
DROPBEAR=y
内部でコメントアウトされた内容をキャンセルします。/etc/initramfs-tools/conf-hooks.d/dropbear
- 既存のホストキー変換(下記参照)
- そのためにマウントをバインドすることを
/etc/initramfs-tools/root/.ssh/authorized_keys
選択しました。/root/.ssh
/etc/initramfs-tools/root/.ssh
- 最後に、
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
。