web-dev-qa-db-ja.com

公開鍵認証に使用された鍵を見つける方法は?

公開鍵認証を使用して、テストサーバーで共有アカウントを使用している複数の開発者。認証に使用されたキー(キーのコメントなど)を確認する方法はありますか?

7
Gyongyeee

すでに起こったこと(フォレンジック)の後でこれを見つけたいですか、それとも誰が​​何をしたかをログに記録できるようにしたいですか?

フォレンジックの場合:私のFedoraシステムでは、/var/log/secureには各公開鍵認証とユーザー名のレコードが含まれていますが、どの鍵が使用されたかは示されていません。あなたはおそらくここで運が悪いです

将来の監査のために:authorized_keysファイルを使用して、各ログインが制限されるコマンドを設定し、認証をログに記録するプログラム(および場合によっては後続のコマンドを sudoscript などを使用して)を実行できます。 )::

行の先頭にあるオプション句にキーワードcommand = "string"が含まれている場合、その特定のキーを使用して認証するssh接続は、指定されたコマンドラインに別のコマンドが指定されていても、指定されたコマンドのみを実行します。

ただし、複数のアカウントを設定してから、共有アクセスエリアを設定する方が理にかなっていると言わざるを得ません...

5
David Fraser

...共有アカウントを使用しています...

これが悪い考えである理由を説明するときに指摘する完璧な例を示してくれてありがとう。 ;-)

真剣に、しかし、あなたがしたいことは、afaikを行うことはできません。また、「キーコメント」とは、キーの後のid_rsaファイルにあるコメントを意味する場合、それも問題ありません。コメントであり、相手側のサーバーには送信されません。

本当に。複数のアカウントを設定します。

5
wzzrd

十分に詳細なレベルでログを記録するようにsshdを設定すると、ログインに使用されたキーのフィンガープリントが出力されます。ただし、ログは非常に速くいっぱいになります。

4
womble

監査可能性のために、そしてあなたの人々がssh-agentを使用しているなら、あなたはこれをあなたの.bashrcに置くことができます:

SSH_KEY_NAME=$(ssh-add -L | cut -d' ' -f 3 || 'unknown')
if [[ ! $SSH_KEY_NAME ]]; then SSH_KEY_NAME="no agent"; fi
echo `/bin/date` $SSH_KEY_NAME >> ~/.login.log
1
Willem