Возможно ли, чтобы sshd принимал пароли только на определенных портах?


24

Я знаю, что можно sshdпрослушивать несколько портов, используя несколько Portдиректив. Однако можно ли независимо настроить параметры для каждого порта? В частности, возможно ли, чтобы один порт разрешал аутентификацию по паролю, а другой порт запрещал это?


1
Кстати, причина, по которой я это делаю, заключается в том, что я хочу разрешить пароли в своей локальной сети, но не из глобальной сети. Мой брандмауэр WAN позволяет подключаться только к более ограничивающему порту.
Лоуренс Гонсалвес

1
См. Также ограничение по IP-адресам, если вы предпочитаете использовать стандартный номер порта.
Ондрюк,

Ответы:


32

Это может быть достигнуто с помощью Matchдирективы.

В /etc/sshd_configобъявить несколько портов:

Port 22
Port 2222

Затем в самом конце файла добавьте следующее:

Match LocalPort 2222
PasswordAuthentication no

Все настройки будут общими для всех портов, за исключением того, что аутентификация по паролю будет отключена на порте 2222.


+1 Очень интересно
Карлос Кампдеррос

Жаль, Matchчто не работает с AllowUsers. Для тех, кому нужно ограничить пользователей для определенного порта, вы, вероятно, застряли с несколькими sshdэкземплярами.
Боб

0

Один sshdпроцесс, я не верю, но это должно быть довольно легко настроить второй файл конфигурации и запустить два sshdпрослушивателя, один на портах пароля и другой на портах без пароля.


3
Я обнаружил, что на самом деле есть способ сделать это с одним экземпляром sshd. Смотрите ответ, который я разместил. Спасибо, в любом случае.
Лоуренс Гонсалвес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.