Ist es möglich, dass sshd Passwörter nur an bestimmten Ports akzeptiert?


24

Ich weiß, dass es möglich ist, sshdmehrere Ports mit mehreren PortDirektiven abzuhören . Ist es jedoch möglich, die Einstellungen pro Port unabhängig voneinander anzupassen? Ist es insbesondere möglich, dass ein Port die Kennwortauthentifizierung zulässt, ein anderer Port dies jedoch nicht zulässt?


1
Übrigens: Der Grund, warum ich das mache, ist, dass ich Passwörter in meinem LAN zulassen möchte, aber nicht aus dem WAN. Meine WAN-Firewall ermöglicht nur die Verbindung mit dem restriktiveren Port.
— Laurence Gonsalves

1
Siehe auch Einschränkung nach IP-Adresse (n), wenn Sie die Standard-Portnummer verwenden möchten.
— ændrük

Antworten:


32

Dies kann mit der MatchDirektive erreicht werden.

In /etc/sshd_config, deklarieren Sie mehrere Ports:

Port 22
Port 2222

Fügen Sie dann ganz am Ende der Datei Folgendes hinzu:

Match LocalPort 2222
PasswordAuthentication no

Alle Einstellungen werden von den Ports gemeinsam genutzt, außer dass die Kennwortauthentifizierung an Port 2222 deaktiviert wird.


+1 Sehr interessant
— Carlos Campderrós

Schade, Matchfunktioniert nicht mit AllowUsers. Wenn Sie Benutzer für einen bestimmten Port einschränken müssen, müssen Sie wahrscheinlich mehrere sshdInstanzen ausführen.
— Bob

0

Ein einzelner sshdProzess, glaube ich nicht, aber es sollte ziemlich einfach sein, eine zweite Konfigurationsdatei einzurichten und zwei sshdListener auszuführen , einen für die Passwort-Ports und einen für die Nicht-Passwort-Ports.


3
Ich fand, dass es tatsächlich eine Möglichkeit gibt, dies mit einer einzelnen Instanz von sshd zu tun. Siehe die Antwort, die ich gepostet habe. Danke trotzdem.
— Laurence Gonsalves
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.