多くのソースでは、パスワードベースの認証ではなく、SSHサーバーに対するキーベースの認証に関するガイダンスを提供しています。
一部の分離環境では、サーバーは資格情報なしで認識可能なユーザー名のみを要求して、ユーザーに権限を付与することをお勧めします。
Linuxで実行されているOpenSSHはこの状況をサポートしていますか?資格情報なしでユーザーに権限を付与するようにサーバーを構成するにはどうすればよいですか?
答え1
定義によると、認証はユーザーの身元を証明する行為です。たとえば、「root」は、すべてのLinuxシステムで既知のユーザー名です。サーバーが「root」として表示されるすべてのユーザーにアクセス権を付与すると、認証は行われません。そして、アイデンティティ自体は通常秘密ではありません。たとえば、/etc/passwd
すべてのローカルユーザー名をリストするファイルは、すべてのユーザーが読み取ることができます。
伝統的に、認証は識別フェーズの後に発生し、ユーザーが知っているもの(パスワードなど)、ユーザーが持っているもの(SSHキーなど)、またはユーザーが実行しているもの(指紋など)です。詳しくはWikipediaのページをご覧ください。https://en.wikipedia.org/wiki/authentication
SSHの場合、最も近い近似は、空白または空白のパスワードを持つアカウントを使用することです。AuthenticationMethods none
その後、sshd_configを使用するPermitEmptyPasswords yes
と、ユーザー名と空のパスワードでログインできます。これらのオプションを完全に設定するのは賢明ではありません。Match
ブロックを使用し、これらの設定を特定のユーザーまたはユーザーグループに適用することをお勧めします。ユーザー名は唯一の防御線なので、新しい非標準ユーザー名を使用することも意味があります。オプションの詳細については、マンページを参照してください。sshd_config(5)
繰り返しますが、このアプローチは認証を完全に排除するため、セキュリティの観点から安全ではありません。また、パスワードのないユーザーアカウントが許可する権限によっては、より多くの脆弱性にさらされる可能性があります。要件を慎重に確認し、続行するかどうかを決定します。