5. Authentication Requests
5. Authentication Requests
Toutes les demandes d'authentification DOIVENT utiliser le format de message suivant. Seuls les premiers champs sont définis ; les champs restants dépendent de la méthode d'authentification.
byte SSH_MSG_USERAUTH_REQUEST
string user name in ISO-10646 UTF-8 encoding [RFC3629]
string service name in US-ASCII
string method name in US-ASCII
.... method specific fields
Le 'user name' et le 'service name' sont répétés à chaque nouvelle tentative d'authentification, et PEUVENT changer. L'implémentation du serveur DOIT les vérifier soigneusement dans chaque message, et DOIT effacer tout état d'authentification accumulé s'ils changent. S'il est incapable d'effacer un état d'authentification, il DOIT se déconnecter si le 'user name' ou le 'service name' change.
Le 'service name' spécifie le service à démarrer après l'authentification. Il PEUT exister plusieurs services authentifiés distincts. Si le service demandé n'est pas disponible, le serveur PEUT se déconnecter immédiatement ou à tout moment ultérieur. Il est RECOMMANDÉ d'envoyer un message de déconnexion approprié. En tout cas, si le service n'existe pas, l'authentification NE DOIT PAS être acceptée.
Si le 'user name' demandé n'existe pas, le serveur PEUT se déconnecter, ou PEUT envoyer une fausse liste de valeurs de 'method name' d'authentification acceptables, mais n'en accepter aucune. Cela permet au serveur d'éviter de divulguer des informations sur les comptes existants. En tout cas, si le 'user name' n'existe pas, la demande d'authentification NE DOIT PAS être acceptée.
Bien qu'il y ait généralement peu d'intérêt pour les clients à envoyer des demandes que le serveur ne liste pas comme acceptables, envoyer de telles demandes n'est pas une erreur, et le serveur DEVRAIT simplement rejeter les demandes qu'il ne reconnaît pas.
Une demande d'authentification PEUT entraîner un échange supplémentaire de messages. Tous ces messages dépendent du 'method name' d'authentification utilisé, et le client PEUT à tout moment poursuivre avec un nouveau message SSH_MSG_USERAUTH_REQUEST, auquel cas le serveur DOIT abandonner la tentative d'authentification précédente et poursuivre avec la nouvelle.
Les valeurs de 'method name' suivantes sont définies.
| Method name | Requirement |
|---|---|
| "publickey" | REQUIRED |
| "password" | OPTIONAL |
| "hostbased" | OPTIONAL |
| "none" | NOT RECOMMENDED |
Des valeurs de 'method name' supplémentaires PEUVENT être définies comme spécifié dans [SSH-ARCH] et [SSH-NUMBERS].