10. Service Request (Dienstanforderung)
10. Service Request (Dienstanforderung)
Nach dem Schlüsselaustausch fordert der Client einen Dienst an. Der Dienst wird durch einen Namen identifiziert. Das Format von Namen und Verfahren zur Definition neuer Namen sind in [SSH-ARCH] und [SSH-NUMBERS] definiert.
Derzeit sind folgende Namen reserviert:
ssh-userauth
ssh-connection
Auf die Dienstnamen wird eine ähnliche lokale Namensrichtlinie angewendet wie auf Algorithmusnamen. Ein lokaler Dienst sollte die PRIVATE-USE-Syntax „servicename@domain“ verwenden.
byte SSH_MSG_SERVICE_REQUEST
string Dienstname (service name)
Lehnt der Server die Dienstanforderung ab, SOLLTE er eine geeignete SSH_MSG_DISCONNECT-Nachricht senden und MUSS die Verbindung trennen.
Wenn der Dienst startet, kann er Zugriff auf die während des Schlüsselaustauschs erzeugte Sitzungskennung (session identifier) haben.
Unterstützt der Server den Dienst (und erlaubt dem Client dessen Nutzung), MUSS er wie folgt antworten:
byte SSH_MSG_SERVICE_ACCEPT
string Dienstname (service name)
Von Diensten verwendete Nachrichtennummern sollten im für sie reservierten Bereich liegen (siehe [SSH-ARCH] und [SSH-NUMBERS]). Die Transportschicht verarbeitet weiterhin ihre eigenen Nachrichten.
Beachten Sie, dass der Client nach einem Schlüsselaustausch mit impliziter Serverauthentifizierung MUSS auf eine Antwort auf seine Dienstanforderungsnachricht warten, bevor er weitere Daten sendet.