Linux(Debian Squeeze)では、一部のユーザー(選択したグループまたはrootを除くすべてのユーザー)へのパスワードを使用したSSHログインを無効にしたいと思います。しかし、私はそれらの証明書を使用したログインを無効にしたくありません。
編集:詳細な回答に感謝します!何らかの理由で、これは私のサーバーでは機能しません:
Match User !root
PasswordAuthentication no
...しかし簡単に置き換えることができます
PasswordAuthentication no
Match User root
PasswordAuthentication yes
sshd_config
でMatch
を試してください:
Match User user1,user2,user3,user4
PasswordAuthentication no
またはグループごと:
Match Group users
PasswordAuthentication no
または、コメントで述べたように、否定によって:
Match User !root
PasswordAuthentication no
一致は効果的であることに注意してください "別の一致行またはファイルの終わりまで。" (インデントは重要ではありません)
sshd_config
のMatch
はうまく機能します。 openssh 6.5p1以降を使用している場合は、Match all
を使用して一致ブロックを終了する必要があります。例:
PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all
これを行うにはいくつかの方法があります-最初に、2番目のsshdデーモンを別のポートで別の構成で実行することができます-これは少しハックですが、chrootの動作によっては問題なく動作するはずです。
また、パスワード認証を許可し、1人のユーザーを除くすべてのユーザーのパスワードをロックすることもできます。ロックされたパスワードを持つユーザーは、引き続き公開鍵で認証できます。