dropbear ssh-accessの秘密鍵を暗号化する

dropbear ssh-accessの秘密鍵を暗号化する

使いたいdropbearあるいは、最小限のssh-serverと-clientがあります。 dropbearプライベート - 公開鍵を使用してSSHアクセスを許可しますが、これらのキーは使用されているキーとは異なるため、-コマンドをopenssh使用してdropbearconvert変換する必要があります。(これは簡単です)。

私が経験している問題はdropbear暗号化された秘密鍵はデフォルトでサポートされていません。。しかし、原則として、私のラップトップに暗号化されていないSSHキーを残すことを避けたいと思います。

だから私の質問は次のとおりです。この問題を回避する方法について良いアイデアがあり、方法(スクリプト?)がある人はいますか?

  • dropbearに使用するキーを復号化し(たとえば、を使用してgnupg)、メモリにロードします。
  • dbclient-binary( dropbear-client-application) に渡して
  • SSH接続開始

sshまた、dropbearの-configオプション(特に-configオプション)に代わるものがあるかどうかを知りたいですHost。したがって、IPなどを指定できるdropbear用のホスト固有の設定ファイルを生成できるかどうかを知りたいです。住所、ポート、その他の詳細)。

答え1

dbclient名前付きパイプやFIFOから秘密鍵を読むことは完璧に見えます。

したがって、bashのプロセスの置き換えによって、次のように書くことができます。

dbclient -i <(cat .ssh/id_dropbear) user@server

したがって、暗号化されたGPGがある場合は、次の.ssh/id_dropbear.gpgように書くことができます。

dbclient -i <(gpg --decrypt .ssh/id_dropbear.gpg) user@server

復号化パスワードを入力したら、dbclientGPG暗号化秘密鍵を使用してログインしてください。だからこの部分はうまくいきます。

ここで最大の問題は、以前.ssh/id_dropbearに暗号化されていない状態で保存した場合、フォレンジックを介して回復できることです。でキーを動的に暗号化するには、dropbearconvert同じ原則を適用できます。

$ dropbearconvert openssh dropbear \
    .ssh/id_openssh >(gpg --symmetric --output .ssh/id_dropbear.gpg)
Key is a ssh-rsa key
Wrote key to '/dev/fd/63'

dropbearconvertただし、OpenSSHの暗号化された秘密鍵に対して非常に限られたサポートしか提供していないため、実際にはあまり使用されていないようです。この例では、理解するために特別にOpenSSHキーを生成する必要がありましたdropbearconvert

残念ながら、このトリックはdropbearkeyコマンドではまったく機能しないようです。このコマンドは、何らかの理由でパイプを完全にバイパスして一時ファイルを作成し、名前を変更するように要求します。

tmpfsしたがって、最初に秘密鍵(たとえば、Live CD/dev/shmまたはLive CDなど)を作成し、そこから暗号化する以外に選択肢がないようです。

関連情報