Чи можливо, щоб sshd приймав паролі лише на певних портах?


24

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


1
До речі: причиною того, що я роблю це, є те, що я хочу дозволити паролі в моїй локальній мережі, але не з WAN. Мій брандмауер WAN дозволяє підключатися лише до більш обмеженого порту.
Лоранс Гонсалвес

1
Дивіться також обмеження за IP-адресами, якщо ви бажаєте використовувати стандартний номер порту.
ændrük

Відповіді:


32

Це можна досягти за допомогою Matchдирективи.

У /etc/sshd_configзаявіть кілька портів:

Port 22
Port 2222

Потім в самому кінці файлу додайте наступне:

Match LocalPort 2222
PasswordAuthentication no

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


+1 Дуже цікаво
Carlos Campderrós

Дуже погано Matchне працює AllowUsers. Для всіх, кому потрібно обмежити користувачів певним портом, ви, швидше за все, затримаєтеся із запуском декількох sshdпримірників.
Боб

0

sshdЯ не вважаю, що це один процес, але налаштувати другий файл конфігурації та запустити двох sshdслухачів слід досить просто , один на порти паролів, а другий на порти, що не мають пароля.


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