使用しようとしていますキーチェーンDebian の最新の安定版では多少の困難がありました。オンラインで検索しても解決策は見つかりませんでしたが、この場合は別のアプローチや別のツールの方が良いかもしれないと思いました。
私はかなり単純なことを達成したいと思っています:
- 再起動後にrootとしてサーバーにログインすると、ユーザーにはマスターパスフレーズ 一度。
- このパスフレーズはメモリにロードされ、ロック解除に使用されます両方(
ssh private key
リモート Git リポジトリからのコードの取得、リモート認証などに使用) とgpg private key
(Git から取得されるいくつかの構成パラメータを復号化するために使用)。
この方法では、ルート アカウントにアクセスできる、またはメモリをダンプできる場合にのみ、パスフレーズを抽出できます。サーバーを再起動するとすぐに、パスフレーズはクリアされます。HSM やそれ以上の複雑なものを購入するための予算やリソースはありません。シンプルで安価で、信頼性が高く、十分に安全に機能するものが欲しいのです。
Keychain は良い候補のように思えますが、両方の要件を満たすように適切に動作させることができません。つまり、パスフレーズを 2 回要求され、また gpg で何かを復号化しようとすると 3 回目に要求されます... keychain または他のツールやシェル スクリプトを使用してこれを安全に実現する方法はありますか?
[追記: これは ServerFault に属するのか、それともここに属しているのかわかりません]
答え1
暗号化された別のファイルシステムを使用します (これは実際には通常のファイルに保存され、dm を介してマウントできます)。セキュリティの面では、ファイルシステムのアクセス権限は、実行中のプロセスの仮想メモリに保存するのと同じ効果があります。どちらも root によってアクセスできます (これを防ぐために追加の手段を講じない限り)。実際には、エージェント ヘルパーにパスワードをキャッシュする場合よりも、パスワードがスワップ上に残る可能性は低くなります。ただし、セキュリティが主な懸念事項である場合は、スワップを暗号化したままにしておく (または完全に無効にする) 必要があります。