11. Messages supplémentaires (Additional Messages)
11. Messages supplémentaires (Additional Messages)
L'une ou l'autre partie peut envoyer à tout moment l'un des messages suivants.
11.1. Message de déconnexion (Disconnection Message)
byte SSH_MSG_DISCONNECT
uint32 reason code
string description in ISO-10646 UTF-8 encoding [RFC3629]
string language tag [RFC3066]
Ce message provoque la fermeture immédiate de la connexion. Toutes les implémentations DOIVENT (MUST) être capables de traiter ce message ; elles DEVRAIENT (SHOULD) pouvoir l'envoyer.
L'émetteur NE DOIT PAS (MUST NOT) envoyer ni recevoir de données après ce message, et le destinataire NE DOIT PAS (MUST NOT) accepter de données après réception de ce message. La chaîne 'description' du message de déconnexion (Disconnection Message) fournit une explication plus précise sous une forme lisible par l'homme. Le 'reason code' du message de déconnexion indique la raison dans un format davantage lisible par machine (adapté à la localisation), et peut prendre les valeurs indiquées dans le tableau ci-dessous. Notez que la représentation décimale est affichée dans ce tableau pour la lisibilité, mais les valeurs sont en réalité des valeurs uint32.
Symbolic name reason code
------------- -----------
SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT 1
SSH_DISCONNECT_PROTOCOL_ERROR 2
SSH_DISCONNECT_KEY_EXCHANGE_FAILED 3
SSH_DISCONNECT_RESERVED 4
SSH_DISCONNECT_MAC_ERROR 5
SSH_DISCONNECT_COMPRESSION_ERROR 6
SSH_DISCONNECT_SERVICE_NOT_AVAILABLE 7
SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED 8
SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE 9
SSH_DISCONNECT_CONNECTION_LOST 10
SSH_DISCONNECT_BY_APPLICATION 11
SSH_DISCONNECT_TOO_MANY_CONNECTIONS 12
SSH_DISCONNECT_AUTH_CANCELLED_BY_USER 13
SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE 14
SSH_DISCONNECT_ILLEGAL_USER_NAME 15
Si la chaîne 'description' est affichée, le filtrage des caractères de contrôle discuté dans [SSH-ARCH] devrait être utilisé pour éviter les attaques par envoi de caractères de contrôle terminal.
Les demandes d'attribution de nouvelles valeurs de 'reason code' pour le message de déconnexion (et le texte 'description' associé) dans l'intervalle 0x00000010 à 0xFDFFFFFF DOIVENT (MUST) être faites par la méthode CONSENSUS IETF (IETF CONSENSUS), comme décrit dans [RFC2434]. Les valeurs de 'reason code' du message de déconnexion dans l'intervalle 0xFE000000 à 0xFFFFFFFF sont réservées à un USAGE PRIVÉ (PRIVATE USE). Comme indiqué, les instructions effectives à l'IANA figurent dans [SSH-NUMBERS].
11.2. Message de données ignorées (Ignored Data Message)
byte SSH_MSG_IGNORE
string data
Toutes les implémentations DOIVENT (MUST) comprendre (et ignorer) ce message à tout moment (après réception de la chaîne d'identification). Aucune implémentation n'est tenue de les envoyer. Ce message peut servir de mesure de protection supplémentaire contre des techniques avancées d'analyse du trafic.
11.3. Message de débogage (Debug Message)
byte SSH_MSG_DEBUG
boolean always_display
string message in ISO-10646 UTF-8 encoding [RFC3629]
string language tag [RFC3066]
Toutes les implémentations DOIVENT (MUST) comprendre ce message, mais elles sont autorisées à l'ignorer. Ce message sert à transmettre des informations pouvant aider au débogage. Si 'always_display' est TRUE, le message DEVRAIT (SHOULD) être affiché. Sinon, il NE DEVRAIT PAS (SHOULD NOT) être affiché sauf si l'utilisateur a explicitement demandé des informations de débogage.
Le 'message' n'a pas besoin de contenir un saut de ligne. Il peut toutefois être composé de plusieurs lignes séparées par des paires CRLF (retour chariot - saut de ligne).
Si la chaîne 'message' est affichée, le filtrage des caractères de contrôle terminal discuté dans [SSH-ARCH] devrait être utilisé pour éviter les attaques par envoi de caractères de contrôle terminal.
11.4. Messages réservés (Reserved Messages)
Une implémentation DOIT (MUST) répondre à tous les messages non reconnus par un message SSH_MSG_UNIMPLEMENTED dans l'ordre où les messages ont été reçus. De tels messages DOIVENT (MUST) être ignorés pour le reste. Des versions ultérieures du protocole peuvent définir d'autres significations pour ces types de messages.
byte SSH_MSG_UNIMPLEMENTED
uint32 packet sequence number of rejected message