特定のIPアドレスからのみSSHパスワード認証を許可するにはどうすればよいですか?


103

特定のサブネットからのみSSHパスワード認証を許可したい。グローバルにそれを禁止するオプションが表示されます/etc/ssh/sshd_config

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

IPアドレスの選択範囲にこの構成を適用する方法はありますか?

回答:


156

の最後Matchブロック使用します/etc/ssh/sshd_config

# Global settings
…
PasswordAuthentication no
…

# Settings that override the global settings for matching IP addresses only
Match address 192.0.2.0/24
    PasswordAuthentication yes

次に、sshdサービスに設定を再ロードするように指示します。

service ssh reload

1
これを試してみました(代わりに192.168.0.0/16を使用)で、sshサービスを再起動するとロックアウトされました。SSHは接続を拒否しました。なぜこれができるのか考えていますか?
マイケルの滝

2
@MichaelWaterfallわずかな情報で伝えることは不可能です。新しい構成を検証するまで、シェルを実行したままにしてください。sshサービスを再起動しても、アクティブな接続には影響しません。
ジル

28
ありそうな問題は、sshd_configの途中のどこかにMatchブロックを配置することです。一致行は、次の一致行まで続くすべての行に影響するため、ファイルの最後になければなりません。
ケンサイモン

6
答えの字下げ​​にもかかわらず、sshd_configPython ではない;)
ニックT

1
@frepie Matchブロックは、次のMatchディレクティブまで、またはファイルの終わりまで続きます。そのため、最後に配置する必要があります。
ジル

8

あなたは付け加えられます:

AllowUsers user1@192.168.*.*, user2@192.168.*.*

これはデフォルトの動作を変更し、すべてのホストから他のすべてのユーザーを実際に拒否します。OpenSshバージョン5.1以降で使用可能な一致ブロック。


私は単一のユーザーの代わりにグループを許可する呼び出し
ラマー

@Lamar Fromからman sshd_configAllowGroups、同じように見えますAllowUsersAllowUsers、に優先するようAllowGroupsです。
conradkdotcom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.