Expand description
SSH-2.0 Server Implementation (RFC 4253, RFC 4252, RFC 4254)
Provides an SSH server for VeridianOS with:
- SSH-2.0 binary packet protocol and version exchange
- Key exchange via curve25519-sha256 (ECDH)
- Password and Ed25519 public key authentication
- Channel multiplexing with flow control (window adjust)
- PTY allocation, shell/exec sessions, env passing
- Session state machine from version exchange through disconnect
Structs§
- Auth
State - Authentication state tracking
- Channel
- SSH channel
- Channel
Request - Parsed channel request
- Channel
Table - Channel table managing multiple channels
- EnvRequest
- Environment variable request
- Exec
Request - Exec request: single command execution
- Exit
Signal - Exit signal payload (for “exit-signal” channel request)
- Exit
Status - Exit status payload (for “exit-status” channel request)
- Host
KeyPair - Host key pair (Ed25519)
- KexInit
Message - KEXINIT message (SSH_MSG_KEXINIT, type 20)
- KexState
- Key exchange state for curve25519-sha256
- Negotiated
Algorithms - Algorithms negotiated during key exchange
- PtyInfo
- PTY terminal information
- Shell
Session - Represents a shell/exec session on a channel
- SshPacket
- SSH binary packet (RFC 4253 Section 6)
- SshServer
- SSH server configuration and state
- SshSession
- SSH session (one per connected client)
- Transport
Keys - SSH transport encryption keys derived from key exchange
- Userauth
Request - Parsed userauth request
- Version
Info - SSH version information parsed from identification string
Enums§
- Algorithm
Id - Supported algorithm identifiers
- Auth
Method - Authentication method
- Auth
Method Data - Method-specific authentication data
- Channel
State - Channel state
- Channel
Type - Channel type
- Session
State - SSH server session state machine
- Shell
Session State - Shell session state
- SshError
- SSH error types
Constants§
- SSH_
DEFAULT_ PORT - Default SSH listen port
- SSH_
DISCONNECT_ AUTH_ CANCELLED_ BY_ USER - SSH_
DISCONNECT_ BY_ APPLICATION - SSH_
DISCONNECT_ COMPRESSION_ ERROR - SSH_
DISCONNECT_ CONNECTION_ LOST - SSH_
DISCONNECT_ HOST_ KEY_ NOT_ VERIFIABLE - SSH_
DISCONNECT_ HOST_ NOT_ ALLOWED - SSH_
DISCONNECT_ ILLEGAL_ USER_ NAME - SSH_
DISCONNECT_ KEY_ EXCHANGE_ FAILED - SSH_
DISCONNECT_ MAC_ ERROR - SSH_
DISCONNECT_ NO_ MORE_ AUTH_ METHODS - SSH_
DISCONNECT_ PROTOCOL_ ERROR - SSH_
DISCONNECT_ PROTOCOL_ VERSION_ NOT_ SUPPORTED - SSH_
DISCONNECT_ RESERVED - SSH_
DISCONNECT_ SERVICE_ NOT_ AVAILABLE - SSH_
DISCONNECT_ TOO_ MANY_ CONNECTIONS - SSH_
MSG_ CHANNEL_ CLOSE - SSH_
MSG_ CHANNEL_ DATA - SSH_
MSG_ CHANNEL_ EOF - SSH_
MSG_ CHANNEL_ EXTENDED_ DATA - SSH_
MSG_ CHANNEL_ FAILURE - SSH_
MSG_ CHANNEL_ OPEN - SSH_
MSG_ CHANNEL_ OPEN_ CONFIRMATION - SSH_
MSG_ CHANNEL_ OPEN_ FAILURE - SSH_
MSG_ CHANNEL_ REQUEST - SSH_
MSG_ CHANNEL_ SUCCESS - SSH_
MSG_ CHANNEL_ WINDOW_ ADJUST - SSH_
MSG_ DEBUG - SSH_
MSG_ DISCONNECT - SSH_
MSG_ GLOBAL_ REQUEST - SSH_
MSG_ IGNORE - SSH_
MSG_ KEXINIT - SSH_
MSG_ KEX_ ECDH_ INIT - SSH_
MSG_ KEX_ ECDH_ REPLY - SSH_
MSG_ NEWKEYS - SSH_
MSG_ REQUEST_ FAILURE - SSH_
MSG_ REQUEST_ SUCCESS - SSH_
MSG_ SERVICE_ ACCEPT - SSH_
MSG_ SERVICE_ REQUEST - SSH_
MSG_ UNIMPLEMENTED - SSH_
MSG_ USERAUTH_ BANNER - SSH_
MSG_ USERAUTH_ FAILURE - SSH_
MSG_ USERAUTH_ PK_ OK - SSH_
MSG_ USERAUTH_ REQUEST - SSH_
MSG_ USERAUTH_ SUCCESS - SSH_
OPEN_ ADMINISTRATIVELY_ PROHIBITED - SSH_
OPEN_ CONNECT_ FAILED - SSH_
OPEN_ RESOURCE_ SHORTAGE - SSH_
OPEN_ UNKNOWN_ CHANNEL_ TYPE - SSH_
VERSION_ STRING - SSH-2.0 server identification string