Kann ein SSH-Server wissen, mit welchem ​​öffentlichen Domänennamen er sich angemeldet hat?

355
dwk

Ich habe eine Situation, in der ich einen SSH-Server einrichten muss, auf den mehrere öffentliche Domänennamen zugreifen können, dem Benutzer jedoch je nach verwendetem Domänennamen eine andere TTY-Schnittstelle zur Verfügung stellt.

Ich möchte wissen, ob folgende Voraussetzung möglich ist , bevor ich versuche, sie zu implementieren, und wenn ja, wie:

Ich habe zwei Domain-Namen, die zwei verschiedene Arten von BBS-Services über ssh anbieten. Tatsächlich werden beide Domänennamen an dieselbe physische Linux-Box weitergeleitet. Die Linux-Box muss jedoch ermitteln, welche Domäne für den Zugriff verwendet wurde, um dem Benutzer die Illusion zu geben, dass es sich um zwei unabhängige Dienste handelt.

Beispiel:

Wenn sich ein Benutzer über seinen Benutzernamen anmeldet, möchte ich meinen SSH-Server einrichten, um festzustellen, ob der Benutzer eine Verbindung zu example.com oder example.org hergestellt hat. Wenn sie sich mit user@example.com verbunden haben, erhalten sie eine Bash-Shell und wenn sie mit user @ example verbunden sind. org sollten sie stattdessen ein TTY-basiertes MUD-Spiel erhalten.

Wie kann ich diese Informationen von sshd bekommen? Setzt sshd eine Umgebungsvariable? Oder bin ich auf dem falschen Weg? Gibt es einen einfacheren Ansatz, um mehrere SSH-Dienste von einem Server aus auszuführen?

3
Siehe auch [Informieren der Server über die SSH- oder FTP-Protokolle, zu welcher Domäne ich mich verbinden möchte?] (Https://serverfault.com/q/672270/168875#672403) Martin Prikryl vor 6 Jahren 1

1 Antwort auf die Frage

5
grawity

Nein. Das SSHv2-Protokoll (im Gegensatz zu z. B. HTTP oder TLS) hat für Clients keine Standardmethode, um diese Informationen an den Server weiterzuleiten. Der Server kann nur TCP-Socket-Informationen anzeigen (die OpenSSH in $ SSH_CONNECTION verfügbar macht).

Sie können versuchen, eine neue Protokollerweiterung auf der OpenSSH-Mailingliste zu besprechen (die logische Art der Implementierung wäre über den kürzlich hinzugefügten Mechanismus zur Erweiterung des Schlüsselaustauschs), aber selbst wenn sie geschrieben und akzeptiert wird, dauert es lange Die Mehrzahl der Clients unterstützt solche Angaben zum Hostnamen.

In der Praxis müssen Sie eine zweite IP-Adresse für Ihre MUD-Domäne anfordern oder das Spiel auf einem alternativen TCP-Port ausführen oder einen speziellen Benutzernamen einrichten, der einem Dienst mitteilt, dass er in den anderen übergehen soll.