10. Service Request (Richiesta di servizio)
10. Service Request (Richiesta di servizio)
Dopo lo scambio di chiavi, il client richiede un servizio. Il servizio è identificato da un nome. Il formato dei nomi e le procedure per definire nuovi nomi sono definite in [SSH-ARCH] e [SSH-NUMBERS].
Attualmente, i seguenti nomi sono riservati:
ssh-userauth
ssh-connection
Una politica di denominazione locale simile è applicata ai nomi dei servizi, come per i nomi degli algoritmi. Un servizio locale dovrebbe usare la sintassi PRIVATE USE di "servicename@domain".
byte SSH_MSG_SERVICE_REQUEST
string service name
Se il server rifiuta la richiesta di servizio, DOVREBBE inviare un messaggio SSH_MSG_DISCONNECT appropriato e DEVE disconnettersi.
Quando il servizio avvia, può avere accesso all'identificatore di sessione (session identifier) generato durante lo scambio di chiavi.
Se il server supporta il servizio (e consente al client di usarlo), DEVE rispondere con quanto segue:
byte SSH_MSG_SERVICE_ACCEPT
string service name
I numeri di messaggio usati dai servizi dovrebbero trovarsi nell'area riservata per essi (vedere [SSH-ARCH] e [SSH-NUMBERS]). Il livello di trasporto continuerà a elaborare i propri messaggi.
Si noti che dopo uno scambio di chiavi con autenticazione implicita del server (implicit server authentication), il client DEVE attendere una risposta al suo messaggio di richiesta di servizio prima di inviare ulteriori dati.