Czy możliwe jest, aby sshd akceptował hasła tylko na niektórych portach?

24

Wiem, że można sshdsłuchać na wielu portach, używając wielu Portdyrektyw. Czy można jednak niezależnie dostosować ustawienia dla każdego portu? W szczególności, czy możliwe jest, aby jeden port zezwalał na uwierzytelnianie hasłem, ale inny port go nie zezwala?

Laurence Gonsalves
źródło
1
Przy okazji: robię to dlatego, że chcę zezwalać na hasła w mojej sieci LAN, ale nie z sieci WAN. Moja zapora sieci WAN pozwala tylko na połączenie z bardziej restrykcyjnym portem.
Laurence Gonsalves
1
Zobacz także ograniczenia według adresów IP, jeśli wolisz używać standardowego numeru portu.
ændrük

Odpowiedzi:

32

Można to osiągnąć dzięki Matchdyrektywie.

W /etc/sshd_configzadeklaruj wiele portów:

Port 22
Port 2222

Następnie na samym końcu pliku dodaj:

Match LocalPort 2222
PasswordAuthentication no

Wszystkie ustawienia będą współużytkowane przez porty, z wyjątkiem tego, że uwierzytelnianie za pomocą hasła zostanie wyłączone na porcie 2222.

Laurence Gonsalves
źródło
+1 Bardzo interesujące
Carlos Campderrós
Szkoda, Matchże nie działa AllowUsers. Dla każdego, kto musi ograniczyć użytkowników do określonego portu, prawdopodobnie utknąłeś z uruchomieniem wielu sshdinstancji.
Bob
0

sshdNie sądzę, aby był to jeden proces, ale skonfigurowanie drugiego pliku konfiguracyjnego i uruchomienie dwóch sshddetektorów, jednego na portach hasła, a drugi na portach innych niż hasła , powinno być dość łatwe .

Jan
źródło
3
Odkryłem, że tak naprawdę jest na to sposób za pomocą pojedynczej instancji sshd. Zobacz odpowiedź, którą opublikowałem. W każdym razie dzięki.
Laurence Gonsalves