10. Demande de service (Service Request)
10. Demande de service (Service Request)
Après l'échange de clés, le client demande un service. Le service est identifié par un nom. Le format des noms et les procédures pour définir de nouveaux noms sont définis dans [SSH-ARCH] et [SSH-NUMBERS].
Actuellement, les noms suivants ont été réservés :
ssh-userauth
ssh-connection
Une politique de dénomination locale similaire s'applique aux noms de service, comme pour les noms d'algorithmes. Un service local devrait utiliser la syntaxe d'usage PRIVÉ (PRIVATE USE) « servicename@domain ».
byte SSH_MSG_SERVICE_REQUEST
string service name
Si le serveur rejette la demande de service, il DEVRAIT (SHOULD) envoyer un message SSH_MSG_DISCONNECT approprié et DOIT (MUST) déconnecter.
Lorsque le service démarre, il peut avoir accès à l'identifiant de session généré pendant l'échange de clés.
Si le serveur prend en charge le service (et autorise le client à l'utiliser), il DOIT (MUST) répondre par ce qui suit :
byte SSH_MSG_SERVICE_ACCEPT
string service name
Les numéros de message utilisés par les services doivent se situer dans la zone qui leur est réservée (voir [SSH-ARCH] et [SSH-NUMBERS]). La couche transport continuera à traiter ses propres messages.
Notez qu'après un échange de clés avec authentification implicite du serveur (implicit server authentication), le client DOIT (MUST) attendre une réponse à son message de demande de service avant d'envoyer d'autres données.