SSH鍵管理に関する推奨事項

SSH鍵管理に関する推奨事項

複数のSSHキーペアを管理するためのベストプラクティスは何だと思いますか?

私は自宅と職場の両方で複数のシステムに接続するためにSSHを使用しています。現在、私は職場や家庭のシステムで使用するかなり小さく管理可能なキーペアのコレクションを持っています。混乱を避けるために名前付きキーペアを生成するスクリプトがあります。

私のホームネットワークは、私のラップトップ(ubuntu)、2台のデスクトップ(ubuntu / fedoraデュアルブート、fedora / windowsデュアルブート)、およびメディアシステム(ubuntu)で構成されています。職場には、個人用ノートブック(在宅勤務用)、デスクトップ(fedora)、本番システム(RHEL)、Windows(sigh)、および仮想マシン(fedora)がインストールされたノートパソコンがあります。今まではそんなに良くなった。

(私は自分のホームキーペアを自分のワークシステムに置いたり、自分のワークキーペアを自分のホームシステムに置いたりすることに興味がありません。実稼働コンピュータに存在する必要があります。

しかし、100以上のシステムで構成された大規模なクラスターであるHadoopが登場し、より多くのユーザーとより多くのキーペアが含まれ、より複雑になりました。これでキーを管理する必要があります。

(明確に説明する必要があります。私はHadoopクラスタをデプロイするクライアントをターゲットにコンサルティングするソフトウェア開発者です。彼らはキーを管理する必要があります。クラスタにアクセスする多くの人は公開キーをシステムに配置する必要があります。常駐Linux専門家、彼らは私に助けを求めています。

リモートシステムに公開鍵を公開する必要がある場合、すべての「方法」Webページは上書き(>)(既存のキーを破棄)または追加(>>)(大丈夫です。既存のキーを保持)を提案します。しかし、私の考えでは、各公開鍵をターゲットマシンに別々に保存して結合する方が良いと思います。アドバイスを求めています。

多数のキーを管理するために見つけたベストプラクティスは何ですか?

ありがとうございます!


編集:一方では、特定のユーザーに対して対応するCRUD(作成、読み取り、更新、削除/無効化)を使用して、多くのシステムにキーを配置する必要があります。つまり、どのキーがどのユーザーに属しているかを識別できる必要があります。

ベストアンサー1

通常、クライアントコンピュータごとに少なくとも2つのキーがあってはいけません(「一般的に」ハイライト)。あなたの質問を正しく理解しているかどうかはわかりませんが、各リモートシステムに別々のキーがあると言っても間違っています。

SSH は公開鍵暗号化を使用します。リモートシステムにインストールする鍵は公開鍵であり、その鍵を他の場所で再利用しても何の害もありません。これは、パーソナルシステムで保護して保管する必要がある秘密鍵です。

秘密鍵を共有するよりも1つのクライアントにのみ置くのも良い考えです。これにより、クライアントが破損した場合にキーを取り消すことができます。


今、何百ものシステムに公開鍵を送信する方法を尋ねる場合は、いくつかの方法があります。

最も一般的な方法は、共有ホームディレクトリを使用することです。すべてのシステムに対してNFS(または他のネットワークファイルシステム)をマウント(または自動的にマウント)します。

もう一つのアプローチは、SSHの新機能を活用することです。これは名前付き設定ディレクティブですAuthorizedKeysCommand。デフォルトでは、これは公開鍵を見つける必要があるたびに sshd が実行するコマンドです。このコマンドは、照会しているユーザーの公開鍵をSTDOUTに書き込みます。これは、自宅にインストールされていないが中央認証サーバーがまだある場合に主に使用されます(リバティIPAこの点を利用しました)。

もちろん、/home中央サーバーでcronジョブをrsyncするなど、他の操作も実行できます。しかし、これは一般的なことではありません。

おすすめ記事