web-dev-qa-db-ja.com

一部のユーザーのパスワードを使用してSSHログインを無効にする方法

Linux(Debian Squeeze)では、一部のユーザー(選択したグループまたはrootを除くすべてのユーザー)へのパスワードを使用したSSHログインを無効にしたいと思います。しかし、私はそれらの証明書を使用したログインを無効にしたくありません。

編集:詳細な回答に感謝します!何らかの理由で、これは私のサーバーでは機能しません:

Match User !root
PasswordAuthentication no

...しかし簡単に置き換えることができます

PasswordAuthentication no
Match User root
PasswordAuthentication yes
172
Stepan

sshd_configMatchを試してください:

Match User user1,user2,user3,user4
    PasswordAuthentication no

またはグループごと:

Match Group users
    PasswordAuthentication no

または、コメントで述べたように、否定によって:

Match User !root
    PasswordAuthentication no

一致は効果的であることに注意してください "別の一致行またはファイルの終わりまで。" (インデントは重要ではありません)

184
Cakemox

sshd_configMatchはうまく機能します。 openssh 6.5p1以降を使用している場合は、Match allを使用して一致ブロックを終了する必要があります。例:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all
26
Trevor Hateley

これを行うにはいくつかの方法があります-最初に、2番目のsshdデーモンを別のポートで別の構成で実行することができます-これは少しハックですが、chrootの動作によっては問題なく動作するはずです。

また、パスワード認証を許可し、1人のユーザーを除くすべてのユーザーのパスワードをロックすることもできます。ロックされたパスワードを持つユーザーは、引き続き公開鍵で認証できます。

3
mitchellhislop