OpenSSH "from" Autorisierungsoption, die nur mit IP-Adressen arbeitet, nicht mit Hostnamen

773
Dave

Ich verwende OpenSSH 6.7p1 unter Debian 8 (Jessie).

Ich verwende die Authentifizierung mit einem öffentlichen Schlüssel. Als Teil davon verwende ich die Berechtigungsoption "Von" in meiner Datei "Authorized_keys".

Ich stelle fest, dass Zugriffsbeschränkungen wie erwartet funktionieren, wenn ich den zulässigen Quellhost anhand der IP-Adresse eingebe. Wenn ich jedoch den zulässigen Quellhost anhand des Hostnamens vorgebe, wird kein Zugriff gewährt. Sie überspringt die Authentifizierung mit öffentlichen Schlüsseln und fragt nach dem Kennwort.

Der Arbeitseintrag in Authorized_keys sieht folgendermaßen aus:

from="10.1.1.1" ssh-rsa ... 

Der nicht funktionierende Eintrag in authorized_keys sieht folgendermaßen aus:

from="snoopy" ssh-rsa ... 

Hostname "snoopy" wird von der Datei / etc / hosts aufgelöst. Auf beiden beteiligten Maschinen ist kein DNS-Client aktiv. Der folgende Eintrag erscheint auf beiden Computern in / etc / hosts: 10.1.1.1 snoopy

Gibt es eine Möglichkeit, dies zu erreichen, oder ist dies eine Einschränkung / ein Problem mit meiner OpenSSH-Version?

1
Hmm, wenn OpenSSH die Hostnamen der eingehenden Verbindung auflöst, glaube ich, dass es eine "umgekehrte" Auflösung durchführt, die etwas anders funktioniert als eine normale "Vorwärts" - Auflösung und oft sehr unterschiedliche Ergebnisse liefert. Ich bin mir nicht sicher, ob Reverse-Auflösungen in der Regel auf / etc / hosts achten oder direkt zu Ihren Nameservern übergehen. Tatsächlich sagt [diese Antwort] (https://stackoverflow.com/questions/13356274/can-etc-hosts-config-reverse-resolution) auf StackOverflow, dass dies nicht der Fall ist. Cliff Armstrong vor 7 Jahren 0
Vielen Dank für die Referenz. Ich werde es lesen. Irgendwann werde ich einen DNS-Server aufstellen, so dass sich das Problem dann beheben lässt. Dave vor 7 Jahren 0

1 Antwort auf die Frage

2
Kenster

Für den OpenSSH-Server wird dieses Verhalten durch die Einstellung "UseDNS" in der Datei sshd_config des Servers gesteuert :

UseDNS
Gibt an, ob sshd (8) den Namen des Remote-Hosts ermitteln soll und ob der aufgelöste Hostname für die Remote-IP-Adresse der gleichen IP-Adresse zugeordnet ist.
Wenn diese Option auf no (Standardeinstellung) gesetzt ist, dürfen nur Adressen und keine Hostnamen in ~ / .ssh / authorised_keys von und sshd_config Match Host-Anweisungen verwendet werden.

Wenn Sie also Zugriff zum Konfigurieren des SSH-Servers haben, sollten Sie UseDNS in der Serverkonfigurationsdatei aktivieren und anschließend SSHD neu starten.

Beachten Sie, dass die Aktivierung von UseDNS dazu führen kann, dass ssh-Verbindungsversuche für kurze Zeit (10 bis 30 Sekunden) hängen bleiben, wenn die DNS-Suche nach der IP-Adresse des Clients langsam ist oder nicht funktioniert. Es kann besser sein, diese Einstellung deaktiviert zu lassen.