web-dev-qa-db-ja.com

複数のコンピューターで同じ秘密sshキーを使用することは悪い考えですか?

私は最近、デスクトップから行うのと同じリモートホストにアクセスする必要があるラップトップを購入しました。秘密鍵ファイルをデスクトップからラップトップにコピーするだけで、アクセスしたいすべてのホストの~/.ssh/authorized_keysファイルに新しい鍵を追加する必要がなくなる可能性があることに気付きました。だから私の質問は:

  1. これは可能ですか?
  2. 明らかでないセキュリティへの影響はありますか?
  3. 時々、ラップトップからデスクトップにログインします。同じキーを使用していた場合、問題は発生しますか?
37
Jason Creighton

はい、可能です。秘密鍵は単一のマシンに関連付けられていません。

自明ではないことの意味がわからない、それは多くの場合主観的です;)。少なくとも20文字の非常に強力なパスフレーズセットがあることを確認することは、まったく悪い考えではありません。

デスクトップと同じキーで接続しても問題はありません。私はラップトップであなたの鍵用にsshエージェントをセットアップし、エージェントをデスクトップに転送するので、そこからアクセスする他のシステムでその鍵を使用します。

Linuxシステムのssh-agent manページから:

ssh-agentは、公開鍵認証(RSA、DSA)に使用される秘密鍵を保持するプログラムです。 ssh-agentはXセッションまたはログインセッションの最初に開始され、他のすべてのウィンドウまたはプログラムはssh-agentプログラムのクライアントとして開始されるという考え方です。環境変数を使用することにより、ssh(1)を使用して他のマシンにログインするときに、エージェントを見つけて自動的に認証に使用できます。

これは、ラップトップ、Linux/Unixのssh-agentプログラム(OpenSSHに付属)、またはWindowsを使用している場合はPuTTYエージェントで実行します。リモートシステムでエージェントを実行する必要はありません。ローカルシステムのメモリに秘密キーを保持するだけなので、エージェントにキーをロードするためにパスフレーズを1回入力するだけで済みます。

エージェント転送はsshクライアント(sshまたはPuTTY)の機能で、ssh接続を介してエージェントを他のシステムに永続化するだけです。

31
jtimberman

以前はすべてのマシンで単一の秘密鍵を使用していましたが(そのうちのいくつかは管理者ではなくユーザーのみであり、ユーザーです)、最近これを変更しました。 1つのキーで機能しますが、キーを無効にする必要がある場合(侵害された場合)、すべてのマシンでキーを変更する必要があります。

もちろん、攻撃者がアクセスして別のマシンにSSH接続できる場合、そのマシンからキーを取得できます。しかし、1つのキーだけを取り消して、そのマシンをロックアウトできることを知っておくと、少し安全になります。ただし、authorized_keysファイルからキーを削除する必要があることを意味します。

10