質問: 誰かのsshキーに空のパスフレーズが含まれているかどうかを確認するにはどうすればよいですか? 私のlinux&freebsdシステムには、何十人ものユーザーがいます。スタッフはこれらの「sshゲートウェイ」ノードを使用して、他の内部サーバーにssh接続します。これらの人々の一部は、暗号化されていない秘密のsshキー( パスフレーズなしのキー 。 を使用しているのではないかと懸念しています。悪い 、クラッカーがこのマシンのアカウントにアクセスしたことがある場合、秘密鍵を盗み、同じキーを使用するすべてのマシンにアクセスできる可能性があるためです。セキュリティ上の理由から、すべてのユーザーに、パスフレーズを使用してプライベートsshキーを暗号化するように要求します。秘密鍵が暗号化されていない(パスフレーズが含まれていないなど)かどうかを確認するにはどうすればよいですか? asciiアーマードキーと非asciiアーマードキーでこれを行う別の方法はありますか?更新:明確にするために、マシンでスーパーユーザーアクセス権があり、全員の秘密鍵を読み取ることができると仮定します。
回答: 私はこれをよく見ましたが、満足のいく答えは見つかりませんでしたが、なんとか構築することができたので...これが機能する場合はファイルが更新されることに注意してください。したがって、テストしているキーのユーザーに気付かれないようにする場合は、最初にキーをコピーすることをお勧めします。 otoh、あなたはユーザーをパスワードなしのキーで捕まえたので、おそらく彼らが気にしても気にしないかもしれません。 :d$ ssh-keygen -p -p '' -n '' -f ~/.ssh/keytest key has comment '/home/rlpowell/.ssh/keytest' your identification has been saved with the new passphrase. $ echo $? 0 $ ssh-keygen -p -p '' -n '' -f ~/.ssh/keytest bad passphrase. $ echo $? 1