一部のユーザーのパスワードでSSHログインを無効にする方法は?


166

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

編集:詳細な回答ありがとうございます!何らかの理由で、これは私のサーバーでは機能しません:

Match User !root
PasswordAuthentication no

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

PasswordAuthentication no
Match User root
PasswordAuthentication yes

たぶんそれはあなたのインデントのせいでしょうか?
nilの

7
それは試合の下で、これらの行は、ファイルの末尾であることを言及する価値がある
zidarsk8

1
!rootも機能しません。2番目のアプローチはトリックを行いました。
ナテンホ

私はMatch User "!root,*"仕事をした事例を見てきました。
ロマンホッケ

回答:


181

お試しMatchsshd_config

Match User user1,user2,user3,user4
    PasswordAuthentication no

またはグループごと:

Match Group users
    PasswordAuthentication no

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

Match User !root
    PasswordAuthentication no

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


4
Match user !rootこのケースを好む
-84104

1
素晴らしい、Match構文については知りませんでした。ただし、これが公開サーバーである場合、SSHを介したルートログインは許可しません。おそらく内部的なものであれば大した問題ではないでしょう
。.-サファド

4
@SpacemanSpiffそれは、a)強力なパスワードとb)denyhosts / fail2banの目的です。
ceejayoz

2
@ deed02392必要に応じて、キーを本当に強力なパスワードと見なすことができます。
ceejayoz

4
同じ球場にないほど強く、それが私のポイントでした。ルートのパスワード認証も無効にし、キーはログインのみに許可する必要があります。
deed02392

22

Matchsshd_configうまくいきます。Match allopenssh 6.5p1以降を使用している場合は、matchブロックの終了に使用する必要があります。例:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

私にとってはうまく
いき

「すべてに一致」がトリックを行いました。ありがとうございました。「すべて一致」なしでは、sshdの起動に失敗します。
ウラジミールコンドラティエフ

3

これを行うにはいくつかの方法があります-最初に、異なる設定で別のポートで2番目のsshdデーモンを実行できる可能性があります-それは少しハックですが、いくつかのchroot作業でうまく動作するはずです。

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


-1

/ etc / ssh / sshd_configファイルに移動して、許可する行を追加することができます-> AllowUsers user1 To Deny ---> DenyUsers user2

/ etcフォルダーにあるhosts.allowまたはhosts.denyファイルを使用して、特定のホストセットのログインを許可/拒否できます。


-1

セキュリティ上の理由により、特定のユーザーのLinuxボックスへのSSHアクセスをブロックする必要がある場合があります。

sshd_configファイルを編集します。場所はLinuxディストリビューションによって異なる場合がありますが、通常は/ etc / ssh /にあります。

ルートとしてログオンしながらファイルを開きます。

# vi /etc/ssh/sshd_config

構成ファイルの最後に行を挿入します-

DenyUsers username1 username2 username3 username4

保存して、SSHサービスを再起動します。基本的に、username1、username2、username3、username4のSSHログインは許可されません。

同じコマンドを再起動するには、以下のコマンドを実行します-

# systemctl restart sshd

要件が完了しました。そのユーザーからsshを取得すると、「アクセスが拒否されました」というエラーが表示されます


1
質問は、パスワードログインを無効にすることでした(ただし、キー認証でログインを維持する)。
ジェラルドシュナイダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.