Як я можу дозволити автентифікацію пароля 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;)
Nick T

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.