ホストとユーザーごとに個別のSSHキーを作成するか、id_rsa
すべてのホストが認証するためのキー?一つできましたid_rsa
プライバシー/匿名性ポリシーの不正行為ですか?
すべてのホストに1つのssh-keyがあります:
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
個別のsshキーと比較して:
~/.ssh/user1_Host1
~/.ssh/user1_Host1.pub
~/.ssh/user2_Host1
~/.ssh/user2_Host1.pub
~/.ssh/user3_Host2
~/.ssh/user3_Host2.pub
~/.ssh/user4_Host3
~/.ssh/user4_Host3.pub
... etc.
秘密鍵は、あなたにとって何であれ、特定のユーザーの単一の「アイデンティティ」に対応します。あなたにとって「アイデンティティ」とは、1人の人、または1人のマシンの1人の人、あるいは1台のマシンで実行されているアプリケーションの1つのインスタンスの場合です。粒度のレベルはあなた次第です。
セキュリティに関する限り、マシンにログインするためにそれを使用してキーを決して妥協しないでください(パスワード)、したがって、別の宛先に別のキーを設定しても、認証/セキュリティの観点からは安全ではありません。
複数のマシンに対して同じキーが承認されていても、同じキー所有者がフォレンジックの観点から両方のマシンにアクセスできることが証明されます。通常それは問題ではありませんが、指摘する価値があります。
また、1つのキーが許可される場所が多いほど、そのキーの価値が高くなります。そのキーが危険にさらされると、より多くのターゲットが危険にさらされます。
また、privateキーが保存されている場所(たとえば、仕事用コンピューター、ラップトップ、バックアップストレージなど)が多いほど、場所が多くなります。攻撃者がコピーを入手するために行くことがあります。そのため、同様に検討する価値があります。
セキュリティの実行方法に関する普遍的に適用可能なガイドラインについては、何もありません。セキュリティを追加すればするほど、使い勝手がよくなります。私がアドバイスする1つのことcan断定的にこれは次のとおりです:秘密鍵を暗号化しておく追加されたセキュリティはかなり重要です。
この質問は2つの異なる角度から考えることができると思います:セキュリティおよび便利。
SSH鍵ペアを作成するときは、次のように、秘密鍵を保護するためのレイヤーを追加するためのパスフレーズを提供するよう求められます。
$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
パスフレーズを要求する明示的なプロンプトがありますが、一部(または多く)の人は、括弧内の情報にさらに焦点を合わせています:(パスフレーズがない場合は空で、その提案に従います。
複数のSSHキーペアを使用するかどうかとかどうか追加のpasswdを入力しないでください。少なくとも4つの方法があります。そして、すべてのキーペアとconfig
ファイルが~/.ssh/
に格納されていると仮定しましょう。
次の表は、セキュリティに関する簡単なランクを示しています(数値が大きいほど安全性が高くなります)。
Security Ways to go
1 One SSH key-pair (NO passwd)
1 Multi SSH key-pairs (NO passwd)
2 One SSH key-pair (WITH passwd)
2 Multi SSH key-pairs (WITH passwd) (SAME passwd)
3 Multi SSH key-pairs (WITH passwd) (DIFF passwds)
passwdを使用しない場合、システムが誰かに侵入された場合、ブレーカーはすべての秘密鍵と設定を取得でき、リモートサーバーの認証も取得できます。したがって、この状況では、1つのキーペアと複数のキーペアは同じです。最も安全な方法は、異なるSSHキーペアに異なるパスワードを使用することです。
しかし、より多くのキーペアとより多くのpasswdsも私たちの生活を不便にします、次の表はセキュリティに関する単純なランクを示します(数値が大きいほどより安全です):
Convenient Security Ways to go
5 1 One SSH key-pair (NO passwd)
4 2 One SSH key-pair (WITH passwd)
3 1 Multi SSH key-pairs (NO passwd)
2 2 Multi SSH key-pairs (WITH passwd) (SAME passwd)
1 3 Multi SSH key-pairs (WITH passwd) (DIFF passwds)
したがって、一般的な状況では、securityとconvenienceを同時にトレードオフする必要がある場合、2つのスコアを乗算できます。おそらく1つのSSH鍵ペア(passwd付き)を選択するのが適切です。
キーはユーザーに属しているため、必要なキーは1つだけです。
ホストごとに1つのキーを使用する必要はありません(セキュリティも向上しません)。
秘密鍵が秘密に保たれている限り、この単一の鍵を使用して、複数のホストに対して自分自身を認証するために使用できます。
ベストプラクティスは何ですか:ホストごとに個別のsshキーとユーザーVSすべてのホストに対して1つのsshキー?
私はあなたの質問が正しいかどうかは知りませんが、「キー」とはどういう意味ですか?非対称暗号を参照していますか?
非対称暗号を使用する場合、秘密鍵と公開鍵のペアがあります。各ユーザーの公開鍵はssh-server(ホスト)に保存されます。これにより、ユーザーの認証が可能になります。これは、公開鍵ごとに1つの秘密鍵しか必要ないためです。
すべてのホストに対して1つのssh-keyを持つことはどういう意味ですか?
個別の鍵の主な利点は、最悪のシナリオで何が起こるかです:誰かがあなたの秘密鍵を取得します。
では、最も安全ですか?各ホストの一意のキー。
経験則として、私は他の回答にも同意します。ユーザーごとに1つのキーを使用するのが最も現実的な方法です。ただし、万能のアプローチとしては適していません。
次に、いくつかの追加の考慮事項を示します。
SSHエージェントを使用している場合、サーバーに接続するときに、SSHクライアントが格納されているキーのいずれかを順番に試す可能性があるため、3つまたは4つを超えるキーが問題になります。これにより、サーバー側でいくつかのログオンに失敗する可能性があり、実際には、SSHが正しいキーを試す前にアカウントがロックアウトされていることに気付く場合があります。この側面は、ユーザーごとに1つのキーを使用するアプローチを支持します。
複数の独立したエンティティ(複数のクライアントにサービスを提供するコンサルタントなど)にサービスを提供する場合は、クライアントごとに個別のSSHキーを検討してください。関係が終了すると、クライアントはすべてのパスワードとSSHキーの引き渡しを要求する可能性があります。時々、それが良いアイデアではない理由を説明することはうまくいきますが、クライアントが裁判所命令のようなものを受け取った場合、問題が発生する可能性があります。
SSH秘密鍵が危険にさらされている場合は、多くのシステムでそれを変更する必要があるかもしれません。あなたは覚えている過去10年間に、SSHキーを使用してセットアップしたすべての単一のシステムですか?侵害されたSSHキーをGithubから削除することを覚えていますか?または、オフィスのクローゼットにあるルーターから、離れた場所で管理しているとカップルに言われましたか?その特定のクライアントのためにもう働かなくなったためにもう触れることができないシステムについてはどうですか?
最後に、2つのアプローチの意味を理解し、それらを状況の特定の懸念事項とバランスさせることになります。
これは少し遅くなるかもしれませんが、言及する価値があると思います。セキュリティと利便性の観点から、人間のユーザーを管理する場合は、ユーザーごとに1つのキーを持つことが望ましいです。
利点は、単一のユーザーへのアクセスを取り消す必要がある場合です。
すべてのユーザーに対して1つのキーを使用していて、パスワードがない(または同じパスワードを使用している)とします。サーバー(「アカウント」)でユーザーを無効にすることもできますが、人間のニーズはすべて、ユーザーとアクセス権を取得するためのキーです。彼/彼女はそれがファイルであるのですでにキーを持っています、あなたはこれを制御することができません、そしてそれから彼はユーザー名が必要です(おそらくユーザー(アカウント)は標準のアルゴリズム(例:名前の最初の文字+姓)で作られています)別のユーザーとしてアクセスします。次に、セキュリティ上の理由から、新しいキーペアを作成して(そしてユーザーに配信して)、古いキーペアを無効にする必要があります。
ユーザー(および必要な場合はキー)を無効にするだけなので、ユーザーごとに1つのキーがある場合ははるかに簡単です。
機密データを処理するシステムまたはサーバーを管理する場合、ユーザープールは変動します(ほとんどの場合、変動するのはローテーション速度です)。これは、セキュリティと利便性の観点から良い習慣になります。
質問されて以来、状況は大きく変化しました。現在、すべてのホストで単一のSSHキーを使用することには、2つのポイントがあります。
もちろん、これは以前の回答で述べた他の考慮事項を無効にするものではありません。