Как я могу разрешить аутентификацию по паролю SSH только с определенных IP-адресов?


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
Вероятная проблема заключается в том, что вы поместили блок Match где-то посередине вашего sshd_config. Строки соответствия влияют на каждую следующую строку до следующей строки соответствия, поэтому они должны находиться в конце файла.
Кен Саймон

6
Несмотря на отступ в ответе, sshd_configэто не Python;)
Ник Т

1
@frepie MatchБлок продолжается до следующей Matchдирективы или до конца файла. Вот почему вы должны положить его в конце.
Жиль

8

можете добавить:

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

это меняет поведение по умолчанию, действительно запрещает всех других пользователей со всех хостов. Блок совпадений доступен в OpenSsh версии 5.1 и выше.


Позвонить я разрешаю группу вместо одного пользователя
Ламар

@ Lamar From man sshd_config, похоже, AllowGroupsработает так же, как AllowUsers, но, AllowUsersкажется, имеет приоритет над AllowGroups.
conradkdotcom
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.