SSH服务端
定义
一、说明
SshService 是基于 TCP 的 SSH 服务端。服务启动后,每个连接都会对应一个 SshSessionClient,负责 SSH 握手、认证和通道通信。
服务端需配置监听地址,并通过 SshServiceOption 指定认证方式与命令处理逻辑。未设置 HostKey 时,框架会自动生成临时 RSA 主机密钥;生产环境应配置并持久化主机密钥,避免服务重启后客户端出现主机指纹变化。
二、创建服务端
以下示例监听 7789 端口,使用用户名和密码认证,并为客户端请求的命令提供执行结果。
🔄 正在加载代码...
SshServiceOption 支持以下常用配置:
| 配置项 | 说明 |
|---|---|
HostKey | 服务端 RSA 主机密钥。未设置时自动生成临时密钥。 |
UserName、Password | 固定用户名密码认证。 |
PasswordValidator | 自定义异步密码校验逻辑。设置后可按业务验证账号。 |
CommandExecutor | 异步命令执行回调,返回标准输出、错误输出及退出状态。 |
ServerVersion | SSH 服务端标识中的版本后缀。 |
提示
StartAsync 不会阻塞当前线程。控制台程序中可使用 Console.ReadLine 等方式保持进程运行。
三、插件
SSH 服务端可通过插件观察连接、通道请求和通道数据等过程。常用接口包括:
| 插件接口 | 触发时机 |
|---|---|
ISshConnectingPlugin | 开始建立 SSH 连接时。 |
ISshConnectedPlugin | 完成 SSH 握手和认证后。 |
ISshChannelRequestPlugin | 收到通道请求时。 |
ISshChannelDataPlugin | 收到通道数据时。 |
ISshClosingPlugin、ISshClosedPlugin | 连接关闭前及关闭后。 |