Wie lege ich eine benutzerdefinierte Antwortzeichenfolge für eine SSH-Verbindung fest?

Wie lege ich eine benutzerdefinierte Antwortzeichenfolge für eine SSH-Verbindung fest?

Ist es möglich, die Zeichenfolge zu ändern, die der OpenSSH-Server anzeigt, wenn eine Raw-Verbindung hergestellt wird?

Es geht nicht um den angezeigten TextbannernachBannerdie Verbindung hergestellt wird und die durch den Parameter in konfiguriert werden kann sshd_config, sondern über die Rohausgabe, die der SSH-Server bei einem Verbindungsversuch vor dem Handshake sendet.

Beispielsweise bei einer einfachen Telnet-Verbindung

$ telnet localhost 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2

gibt es eine Möglichkeit, identifizierende Informationen auf das absolute Minimum zu reduzieren?

Meines Wissens SSH-2.0-muss das vorhanden sein, da es vom SSH-Protokoll benötigt wird, aber die folgende Zeichenfolge - OpenSSH_7.2p2- wird vom Protokoll wahrscheinlich nicht benötigt, aber ich sehe keine Möglichkeit, sie zu ändern oder zu entfernen, ohne sie neu zu kompilieren.

Die Absicht besteht darin, die Bereitstellung von mehr Informationen zu vermeiden, als unbedingt notwendig sind, damit das Protokoll funktioniert.

Antwort1

Nein. Die Versionszeichenfolge ist in version.h von definiertOpenSSH-Quelleals

#define SSH_VERSION "OpenSSH_7.4".

Sie könnten es ändern, aber es muss neu kompiliert werden.

Der Versand erfolgt dann zusammengestellt per:

snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION)

(ssh_api.c Zeile 381, in Funktion _ssh_send_banner)

Siehe auch:Verhindern, dass SSH seine Versionsnummer bekannt gibt.

Antwort2

Neuere OpenSSH-Versionen erlauben das Hinzufügen von benutzerdefiniertem Text über VersionAddendum, aber nicht das Entfernen des Produktnamens/der Produktversion. Dazu müssen Sie den Quellcode patchen.

verwandte Informationen