リモート サーバーで SSH キーと GnuPG キーを生成する。キー管理のベスト プラクティス

リモート サーバーで SSH キーと GnuPG キーを生成する。キー管理のベスト プラクティス

キーの生成、使用、管理に関するベストプラクティスについて質問しています。

何度か、さまざまな理由で、職場のリモート マルチユーザー サーバー (および自宅から職場のデスクトップ マシン) に SSH 経由でログインしているときに、SSH キーと GnuPG キーを作成したことがあります。

新しく生成したキーのパスフレーズを入力しているときに、ログインしているマシンやその間のリンクを制御できないことに気づきました。職場のシステム管理者をある程度信頼していますし、SSH は安全ですが、それでも、新しいパスフレーズをそのようなリンク経由で送信するのは変な感じがしました。

どう思いますか? キー (SSH、GnuPG、またはその他) をローカルで生成し、秘密キーを SSH 経由で転送する方が賢明でしょうか、それとも私が全体的に偏執的になっているだけでしょうか?

また、私が少しばかり偏執的になっているのが正しいとしたら、秘密鍵をどこに保管するかについてはどうお考えですか? すべてを 1 つの物理的な場所に置くべきでしょうか? 常に頻繁に使用すべきでしょうgpg-agentssh-agent?

私は 2 台の別々のマシンから作業しており、SSH を使用していくつかの別々のマルチユーザー サーバーにログインして作業を行っています。約 4 つの場所 (ローカルとリモート) から GnuPG を使用して Git コミットに署名しています。

私は Mac OS X (MacPorts を使用) と Linux マシン (Pkgsrc を使用) を組み合わせて作業していますが、常にコマンド ラインを使用しています。

答え1

どう思いますか? キー (SSH、GnuPG、またはその他) をローカルで生成し、秘密キーを SSH 経由で転送する方が賢明でしょうか、それとも私が全体的に偏執的になっているだけでしょうか?

少なくともシステム管理者がソフトウェア スタックを改ざんしなかった場合、これは実際には何の違いもありません (しかし、いずれにしても秘密鍵を入手しているのに、なぜ改ざんする必要があるのでしょうか?)。

秘密鍵がリモートマシン上にある限り、変わりはないどのようにしてそこにたどり着いたかは不明です。システム管理者はそれにアクセスできます。パスフレーズを使用すると、入力内容にもアクセスできるため、キーの取得に余分な手間がかかるだけです。

また、私が少しばかり偏執的であるのが正しいとすれば、秘密鍵をどこに保存するかについてはどうお考えですか? すべてを 1 つの物理的な場所に保存する必要がありますか? gpg-agent と ssh-agent を常に多用する必要がありますか?

これは、要件、偏執症のレベル、システム管理者への信頼、そして最終的にはキーの使用によって決まります。

プライベートが必要な場合はパスワード一部のサービス (GitHub など) にアクセスするためにマシン上にキーを設定する場合は、このマシンでのみ使用され、必要なサービス/マシンでの認証にのみ受け入れられる新しいキーを生成するだけです。

に関してオープンPGP/GnuPG、状況は要件によって異なります。ソフトウェアに署名したいようですが、これはあなたの会社で起こっていることだと思います。キーが会社に直接リンクされていて、この目的のためだけに作成されている場合、そのキーを会社のマシンにインストールしないことに異論はないと思います。

何らかの理由で独自のキーを使用する必要がある場合は、少なくとも署名に限定し、いつでも簡単に取り消すことができるサブキーを作成してください。いずれにしても、サブキーを使用するのは良い習慣です。多くの OpenPGP パワー ユーザーは、実際にはプライベート プライマリ キーをオフラインで保存し、キー管理にのみ使用しています。

転送gpg-agentのソケットは問題なく可能のようです、そしてもちろん、システム管理者の鍵へのアクセスも制限されます(彼らはもはや完全な鍵にアクセスできず、少なくともGnuPG 2.1以降では鍵を使用することしかできません。全てエージェントへの秘密鍵操作)。

関連情報