SSH認証の場合、どちらがより安全ですか?
USBトークンを使用した2要素認証/ Google認証システム(時間ベース)
[〜#〜]または[〜#〜]
公開鍵/秘密鍵とパスワード
または、両方を同時に使用できますか?可能であれば、このような多要素認証を使用することの欠点はありますか?
また、可能であれば、誰でも例やリンクを投稿して、公開鍵と2ファクターの両方を一緒に実装する方法を示すこともできます。ありがとうございました!
これは「一方が他方より優れている」問題ではありません。どちらも、システムに侵入する攻撃者の負担を増やします。
キーを使用(および強制)すると、「パスワードの品質」が向上します(「mypassword123」対「long_binary_asymetric_keypair_here」)。人間は、エントロピーの良い長いパスフレーズを覚えるのが非常に苦手です。
2Factor authを使用すると、攻撃者は2つのプロパティを取得する必要があります。1つはパスワードのメカニズム(通常のパスワード、PK)で、もう1つは(通常)最初の物理的な場所とは異なるものです。 2Factorモードでは、認証しようとしているシステムは、最初のチャレンジで成功した後、もう一度チャレンジします。しかし、両方の課題がばかげている/単純である/ 2Factor全体を簡単に破るのは無意味です。
したがって、両方のメカニズムが互いに補完し合います。
2Factorパートの良いチュートリアル:
これを、sshキーの使用方法を説明する他のチュートリアルと組み合わせます(インターネットにはたくさんあります)。認証の流れは次のとおりです。
他の回答に加えて、秘密鍵がスマートカード(OpenPGPカードなど)にある場合、pubkeyベースの認証自体が2要素になることも追加できます。私の経験では、sshレベルでgoogle-authenticatorを追加すると、管理者の作業が煩雑になりすぎてしまいます。状況を把握する必要があるたびにコードを入力する必要があります。私の推奨するアプローチは、Sudoを実行するときのOpenPGPカードのsshキーとgoogle-authenticatorです。
これらの2つのリンクはあなたに役立ちます: