SSH:各リモートマシンに1つの秘密/公開キーペアを使用しますか?または、すべての単一のペアですか?


23

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


@Jim Zajkowski:コメントへの返信方法がわかりませんが、これはあなたのためです。ジャンプボックスにより、DMZ(ファイアウォールの内側)にあるインターネットに面したサーバーへのアクセスを制御できます。「server_a」と「server_b」があるとします。Aはネットワーク内にあり、Bはネットワーク外にあります。外部の顧客はBに接続します。AからBに向かうトラフィックは制御する必要があり、その逆も同様です。そこで、2つのネットワークカードを持つジャンプボックスを追加します。内部ネットワークに接続するもの(A)と外部ネットワークに接続するもの(B)。Aからジャンプボックスに移動し、次にBに移動します。利点の1つ

@IMTheNachoMan-あなたの答えをコメントに変換しましたが、それに対する最良の場所は、あなたが応答しているコメントを保持している答えの中の直接のコメントとしてでしょう(少しめまいがした)。質問がある場合は、metaにアクセスして質問してください。関係なく説明をありがとう。
カラマルフィア

回答:


27

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


4

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

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


2

適切に理解すれば、各サーバーは独自の公開鍵を持ちます。

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

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

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

また、HPのServer Automationプラットフォームのような管理システムを使用する場合、管理対象サーバーのリモート管理はより単純化されたプロセスになります。


1
誰もが鍵を暗号化しておく必要があります。「ジャンプボックス」のセキュリティ上の利点については説明できません。
ジムザジコフスキ

「ジャンプボックス」の背後にある考え方は、「普通の」ユーザーではDMZまたはサブネットなどのサーバーにアクセスできないということです。ジャンプボックスに接続し、ログ形式で管理ユーザーにsuして、他のネットワークに接続します。
ウォーレン

2
言い換えれば、セキュリティ上の利点== 0です。
ワンブル

@womble-おそらくそれは正しい。しかし、それは多くの妄想的な企業が行うことです。suただし、セッションはログに記録されるため、監査可能です。
ウォーレン

1
suセッションのみが監査可能であり、他のセッションは監査できないのはなぜですか?
ジョアンポルテラ

1

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

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


0

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


2
栄光に満ちたforループで「クレイジーなバグ」をどうやって取得しますか?
ワンブル

それに関する何かは非常に致命的なようです-間違えた場合は、1つではなく一度にすべてのサーバーを台無しにします!
ニック

@Nick-true、しかし、それは私がボックスを担当しているときのほとんどの場合=)@womble-ハァッか。「クレイジーバグ」とは何ですか?
Greeblesnort

1
リンクしたプロジェクトページの上部:「注:すぐにこのプロジェクトに戻って、その中のクレイジーなバグを修正できるようにします。」その通知が2年後もまだそこにあるという事実は、それに対する私の信頼をこれ以上高めるものではありません。
ウォンブル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.