メインコンテンツまでスキップ

11. Additional Messages (追加メッセージ)

11. Additional Messages (追加メッセージ)

どちらの当事者も, 次のメッセージをいつでも送信できます.

11.1. Disconnection Message (切断メッセージ)

      byte      SSH_MSG_DISCONNECT
uint32 reason code
string description in ISO-10646 UTF-8 encoding [RFC3629]
string language tag [RFC3066]

このメッセージは接続を直ちに終了させます。すべての実装はこのメッセージを処理できなければなりません (MUST). このメッセージを送信できるべきです (SHOULD).

送信者はこのメッセージの後にデータを送受信してはなりません (MUST NOT), 受信者はこのメッセージを受信した後にデータを受け入れてはなりません (MUST NOT). 切断メッセージ (Disconnection Message) の 'description' 文字列は, 人間が読める形式でより具体的な説明を与えます。切断メッセージの 'reason code' はより機械可読な形式 (ローカライズに適した形式) で理由を与え, 下表の値を取り得ます。表では可読性のため 10 進表記を示していますが, 値は実際には 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

'description' 文字列を表示する場合, 端末制御文字を送る攻撃を避けるため, [SSH-ARCH] で論じた制御文字フィルタリングを使用すべきです。

切断メッセージの 'reason code' 値 (関連する 'description' テキストを伴う) の 0x00000010 から 0xFDFFFFFF の範囲への新規割り当て要求は, [RFC2434] で説明される IETF CONSENSUS の方法で行わなければなりません (MUST). 切断メッセージの 'reason code' 値 0xFE000000 から 0xFFFFFFFF の範囲は PRIVATE USE 用に予約されています。IANA への実際の指示は [SSH-NUMBERS] に記載されています。

11.2. Ignored Data Message (無視データメッセージ)

      byte      SSH_MSG_IGNORE
string data

すべての実装は (識別文字列を受信した後) いつでもこのメッセージを理解し (無視) しなければなりません (MUST). 実装がこれらを送信する必要はありません。このメッセージは, 高度なトラフィック解析手法に対する追加の保護手段として使用できます。

11.3. Debug Message (デバッグメッセージ)

      byte      SSH_MSG_DEBUG
boolean always_display
string message in ISO-10646 UTF-8 encoding [RFC3629]
string language tag [RFC3066]

すべての実装はこのメッセージを理解しなければなりませんが (MUST), 無視しても構いません。このメッセージはデバッグに役立つ情報を伝えるために用いられます。'always_display' が TRUE なら, メッセージを表示すべきです (SHOULD). それ以外の場合, ユーザーが明示的にデバッグ情報を要求していない限り表示すべきではありません (SHOULD NOT).

'message' に改行を含める必要はありません。ただし CRLF (キャリッジリターン - ラインフィード) ペアで区切られた複数行であっても構いません。

'message' 文字列を表示する場合, 端末制御文字を送る攻撃を避けるため, [SSH-ARCH] で論じた端末制御文字フィルタリングを使用すべきです。

11.4. Reserved Messages (予約メッセージ)

実装は, 認識されないすべてのメッセージに対し, 受信順に SSH_MSG_UNIMPLEMENTED メッセージで応答しなければなりません (MUST). そのようなメッセージはそれ以外では無視されなければなりません (MUST). 後のプロトコルバージョンはこれらのメッセージ型に別の意味を定義してもよいです.

      byte      SSH_MSG_UNIMPLEMENTED
uint32 packet sequence number of rejected message