4.2. Protocol Version Exchange (Protokollversionaustausch)
4.2. Protocol Version Exchange (Protokollversionaustausch)
Wenn die Verbindung hergestellt wurde, MÜSSEN beide Seiten eine Identifikationszeichenfolge senden. Diese Identifikationszeichenfolge MUSS sein:
SSH-protoversion-softwareversion SP comments CR LF
Da das in diesem Dokumentensatz definierte Protokoll Version 2.0 ist, MUSS die protoversion "2.0" sein. Die comments-Zeichenfolge ist OPTIONAL. Wenn die comments-Zeichenfolge enthalten ist, MUSS ein Leerzeichen (oben als SP bezeichnet, ASCII 32) die softwareversion- und comments-Zeichenfolgen trennen. Die Identifikation MUSS durch ein einzelnes Wagenrücklaufzeichen (CR) und ein einzelnes Zeilenvorschubzeichen (LF) (ASCII 13 bzw. 10) abgeschlossen werden. Implementierer, die die Kompatibilität mit älteren, nicht dokumentierten Versionen dieses Protokolls aufrechterhalten möchten, möchten möglicherweise die Identifikationszeichenfolge verarbeiten, ohne das Vorhandensein des Wagenrücklaufzeichens zu erwarten, aus Gründen, die in Abschnitt 5 dieses Dokuments beschrieben werden. Das Nullzeichen DARF NICHT gesendet werden. Die maximale Länge der Zeichenfolge beträgt 255 Zeichen, einschließlich Wagenrücklauf und Zeilenvorschub.
Der Teil der Identifikationszeichenfolge vor dem Wagenrücklauf und Zeilenvorschub wird beim Diffie-Hellman-Schlüsselaustausch verwendet (siehe Abschnitt 8).
Der Server KANN vor dem Senden der Versionszeichenfolge andere Datenzeilen senden. Jede Zeile SOLLTE durch einen Wagenrücklauf und Zeilenvorschub abgeschlossen werden. Solche Zeilen DÜRFEN NICHT mit "SSH-" beginnen und SOLLTEN in ISO-10646 UTF-8 [RFC3629] kodiert werden (Sprache ist nicht angegeben). Clients MÜSSEN in der Lage sein, solche Zeilen zu verarbeiten. Solche Zeilen KÖNNEN stillschweigend ignoriert werden oder KÖNNEN dem Client-Benutzer angezeigt werden. Wenn sie angezeigt werden, SOLLTE die Steuerzeichenfilterung, wie in [SSH-ARCH] diskutiert, verwendet werden. Die Hauptverwendung dieser Funktion besteht darin, TCP-Wrappern zu ermöglichen, vor dem Trennen eine Fehlermeldung anzuzeigen.
Sowohl die protoversion- als auch die softwareversion-Zeichenfolgen MÜSSEN aus druckbaren US-ASCII-Zeichen bestehen, mit Ausnahme von Leerzeichen und dem Minuszeichen (-). Die softwareversion-Zeichenfolge wird hauptsächlich verwendet, um Kompatibilitätserweiterungen auszulösen und die Fähigkeiten einer Implementierung anzuzeigen. Die comments-Zeichenfolge SOLLTE zusätzliche Informationen enthalten, die bei der Lösung von Benutzerproblemen hilfreich sein könnten. Ein Beispiel für eine gültige Identifikationszeichenfolge ist daher:
SSH-2.0-billsSSH_3.6.3q3<CR><LF>
Diese Identifikationszeichenfolge enthält nicht die optionale comments-Zeichenfolge und wird daher unmittelbar nach der softwareversion-Zeichenfolge durch CR und LF abgeschlossen.
Der Schlüsselaustausch beginnt unmittelbar nach dem Senden dieser Kennung. Alle Pakete, die der Identifikationszeichenfolge folgen, MÜSSEN das in Abschnitt 6 beschriebene Binärpaketprotokoll verwenden.