web-dev-qa-db-ja.com

SSH:リモートマシンごとに1つの秘密鍵と公開鍵のペアを使用していますか?または、すべての1つのペアですか?

複数のマシンに公開鍵ベースのsshログインが必要な場合、1つの秘密鍵を使用して、すべてのマシンに同じ公開鍵を配置しますか?または、接続ごとに1つの秘密鍵と公開鍵のペアがありますか?

23
Nick

共通の管理境界を共有するシステムのセットごとに1つのキーを使用します。これにより、キーが危険にさらされた場合にポップされるマシンの数が制限されますが、数千のキーを保存および管理する私の能力を完全に圧倒することはありません。キーごとに異なるパスフレーズを使用すると、すべての秘密キーが盗まれて1つのキーが危険にさらされても、残りのキーはトイレに行きません。また、(秘密キーを信頼されていないマシンにコピーするなど)愚かなことをした場合も、すべてを再キー入力する必要はなく、そのキーに関連付けられたマシンのみをキー再設定する必要があります。

27
womble

公開鍵は定義により公開できるため、それほど重要ではありません。したがって、唯一の問題は、秘密鍵のプライバシーです。それらはあなた自身のマシン上にあり、すべて一緒になっているので、1つが侵害された場合、それらすべてが侵害される可能性があります。したがって、同じ効果を得るには、複数のキーペアを追加するだけです。

異なるキーを使用するのは、アカウントやロールが異なる場合のみです。これらのロールは、定義上、アクセスが完全に重複してはなりません。

4
Lee B

私が正しく理解すれば、各サーバーは独自の公開鍵を持つことになります。

特定のserの場合、秘密鍵がすべての開始ホストに複製される限り、1つの鍵を生成してどこでも使用できます。 (これは、ユーザーがログインするワークステーションに関係なくユーザーは常に「同じ」であるため、ネットワークにマウントされたホームディレクトリとOpenLDAPなどのディレクトリベースの認証システムを介して自動的に行われます。)

ディレクトリベースのユーザーシステムの外では、どこでも同じキーを使用するのは悪い考えです。ワークステーションのいずれかからキーを取得できるユーザーは、次のように認証できるため、システムのセキュリティが実質的に低下します。そのユーザーをリモートサーバーに。

いくつかの大企業(そして確かに小さな企業も)が採用している別の方法は、「ユーザー」が事前共有キーを使用することを決して許可せず、「ジャンプ」または「ハブ」ボックスにログインすることです。 、suを適切な接続ユーザーに送信し、そこから管理に必要なサーバーにSSH接続します。

また、HPのServer Automationプラットフォームなどの管理システムを使用すると、管理対象サーバーのリモート管理がより簡単なプロセスになります。

2
warren

他の人が言ったように、複数の鍵ペアのアイデアはより安全に思えるかもしれませんが、それらがすべて同じ場所にあるような方法で使用される可能性がある場合、それはより面倒でより安全ではありません。複数のパスフレーズを使用すると、より安全になりますが、どのパスフレーズがどのキーに対応し、どのキーがどのサーバーに対応するかを思い出そうとする大きな頭痛の種になります。

私にとって最も合理的な答えは、それがあまり重複することなく個別の管理役割を含む場合にのみそうすることが提案されたものです。そのため、さまざまな役割を処理するさまざまな人、またはさまざまなワークステーションなどで実行できます。その場合は、とにかく、それぞれの役割ごとに対処する必要のあるよりユニークなものがあるため、より正当化できます。

1
fred

複数のSSH対応サーバーの管理を容易にするために、 cssh をチェックアウトすることをお勧めします。 csshとパスフレーズ付きのSSHキーを組み合わせて、複数のサーバーを同時に管理する機能を大幅に強化できます。

0
Greeblesnort