RFC 4250 SSH协议号码分配
RFC 4250 SSH协议号码分配
RFC 4250 SSH协议号码分配
| 传输层协议 | 1-19 | 传输层,比如断开连接,忽略,调试命令等 |
| 20-29 | 算法协商 | |
| 30-49 | 秘钥交换(对于不同的认证方法可重用) | |
| 用户认证 | 50-59 | 通用用户认证 |
| 60-79 | 用户认证方法 | |
| 连接协议 | 80-89 | 通用连接协议 |
| 90-127 | 通道(Channel)相关 | |
| 客户端保留 | 128-191 | |
| 本地扩展 | 192-255 |
号码分配情况
| Message ID | Value | Reference |
|---|---|---|
| SSH_MSG_DISCONNECT | 1 | [SSH-TRANS] |
| SSH_MSG_IGNORE | 2 | [SSH-TRANS] |
| SSH_MSG_UNIMPLEMENTED | 3 | [SSH-TRANS] |
| SSH_MSG_DEBUG | 4 | [SSH-TRANS] |
| SSH_MSG_SERVICE_REQUEST | 5 | [SSH-TRANS] |
| SSH_MSG_SERVICE_ACCEPT | 6 | [SSH-TRANS] |
| SSH_MSG_KEXINIT | 20 | [SSH-TRANS] |
| SSH_MSG_NEWKEYS | 21 | [SSH-TRANS] |
| SSH_MSG_USERAUTH_REQUEST | 50 | [SSH-USERAUTH] |
| SSH_MSG_USERAUTH_FAILURE | 51 | [SSH-USERAUTH] |
| SSH_MSG_USERAUTH_SUCCESS | 52 | [SSH-USERAUTH] |
| SSH_MSG_USERAUTH_BANNER | 53 | [SSH-USERAUTH] |
| SSH_MSG_GLOBAL_REQUEST | 80 | [SSH-CONNECT] |
| SSH_MSG_REQUEST_SUCCESS | 81 | [SSH-CONNECT] |
| SSH_MSG_REQUEST_FAILURE | 82 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_OPEN | 90 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_OPEN_CONFIRMATION | 91 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_OPEN_FAILURE | 92 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_WINDOW_ADJUST | 93 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_DATA | 94 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_EXTENDED_DATA | 95 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_EOF | 96 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_CLOSE | 97 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_REQUEST | 98 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_SUCCESS | 99 | [SSH-CONNECT] |
| SSH_MSG_CHANNEL_FAILURE | 100 | [SSH-CONNECT] |
初始编码定义
| 编号 | 含义 |
| 30-49 | 根据定义的协商60-79不同,其含义有所不同 |
| 60-79 | 根据用户认证方法的不同,其含义有所不同 |
| 128-191 | 必须经过IETF达成的共识再分配 |
| 191-255 | 可以自由分配 |
将来分配编号
| 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 |
断开链接原因定义
| Symbolic Name | reason code |
| SSH_OPEN_ADMINISTRATIVELY_PROHIBITED | 1 |
| SSH_OPEN_CONNECT_FAILED | 2 |
| SSH_OPEN_UNKNOWN_CHANNEL_TYPE | 3 |
| SSH_OPEN_RESOURCE_SHORTAGE | 4 |
通道打开失败原因定义
| Symbolic name | data_type_code |
| SSH_EXTENDED_DATA_STDERR | 1 |
通道扩展数据定义
pty-req编码中断模式定义 SSH_MSG_CHANNEL_REQUEST
0 TTY_OP_END Indicates end of options.
1 VINTR Interrupt character; 255 if none. Similarly
for the other characters. Not all of these
characters are supported on all systems.
2 VQUIT The quit character (sends SIGQUIT signal on
POSIX systems).
3 VERASE Erase the character to left of the cursor.
4 VKILL Kill the current input line.
5 VEOF End-of-file character (sends EOF from the
terminal).
6 VEOL End-of-line character in addition to
carriage return and/or linefeed.
7 VEOL2 Additional end-of-line character.
8 VSTART Continues paused output (normally
control-Q).
9 VSTOP Pauses output (normally control-S).
10 VSUSP Suspends the current program.
11 VDSUSP Another suspend character.
12 VREPRINT Reprints the current input line.
13 VWERASE Erases a word left of cursor.
14 VLNEXT Enter the next character typed literally,
even if it is a special character
15 VFLUSH Character to flush output.
16 VSWTCH Switch to a different shell layer.
17 VSTATUS Prints system status line (load, command,
pid, etc).
18 VDISCARD Toggles the flushing of terminal output.
30 IGNPAR The ignore parity flag. The parameter
SHOULD be 0 if this flag is FALSE,
and 1 if it is TRUE.
31 PARMRK Mark parity and framing errors.
32 INPCK Enable checking of parity errors.
33 ISTRIP Strip 8th bit off characters.
34 INLCR Map NL into CR on input.
35 IGNCR Ignore CR on input.
36 ICRNL Map CR to NL on input.
37 IUCLC Translate uppercase characters to
lowercase.
38 IXON Enable output flow control.
39 IXANY Any char will restart after stop.
40 IXOFF Enable input flow control.
41 IMAXBEL Ring bell on input queue full.
50 ISIG Enable signals INTR, QUIT, [D]SUSP.
51 ICANON Canonicalize input lines.
Lehtinen & Lonvick Standards Track [Page 11]
RFC 4250 SSH Protocol Assigned Numbers January 2006
52 XCASE Enable input and output of uppercase
characters by preceding their lowercase
equivalents with “\”.
53 ECHO Enable echoing.
54 ECHOE Visually erase chars.
55 ECHOK Kill character discards current line.
56 ECHONL Echo NL even if ECHO is off.
57 NOFLSH Don’t flush after interrupt.
58 TOSTOP Stop background jobs from output.
59 IEXTEN Enable extensions.
60 ECHOCTL Echo control characters as ^(Char).
61 ECHOKE Visual erase for line kill.
62 PENDIN Retype pending input.
70 OPOST Enable output processing.
71 OLCUC Convert lowercase to uppercase.
72 ONLCR Map NL to CR-NL.
73 OCRNL Translate carriage return to newline
(output).
74 ONOCR Translate newline to carriage
return-newline (output).
75 ONLRET Newline performs a carriage return
(output).
90 CS7 7 bit mode.
91 CS8 8 bit mode.
92 PARENB Parity enable.
93 PARODD Odd parity, else even.
128 TTY_OP_ISPEED Specifies the input baud rate in
bits per second.
129 TTY_OP_OSPEED Specifies the output baud rate in
bits per second.
后续
RFC的4.6章节及以后部分是描述协议分配名称,本质上像是一个索引,定义哪些章节存在哪些内容。例如用户认证方法定义在哪里,通道协议类型定义 通道协议请求名称等等。