跳到主要内容
版本:4.3

SSH服务端

定义

命名空间:
TouchSocket.Ssh
安装:
dotnet add package TouchSocketPro.Ssh

一、说明

SshService 是基于 TCP 的 SSH 服务端。服务启动后,每个连接都会对应一个 SshSessionClient,负责 SSH 握手、认证和通道通信。

服务端需配置监听地址,并通过 SshServiceOption 指定认证方式与命令处理逻辑。未设置 HostKey 时,框架会自动生成临时 RSA 主机密钥;生产环境应配置并持久化主机密钥,避免服务重启后客户端出现主机指纹变化。

二、创建服务端

以下示例监听 7789 端口,使用用户名和密码认证,并为客户端请求的命令提供执行结果。

🔄 正在加载代码...

SshServiceOption 支持以下常用配置:

配置项说明
HostKey服务端 RSA 主机密钥。未设置时自动生成临时密钥。
UserNamePassword固定用户名密码认证。
PasswordValidator自定义异步密码校验逻辑。设置后可按业务验证账号。
CommandExecutor异步命令执行回调,返回标准输出、错误输出及退出状态。
ServerVersionSSH 服务端标识中的版本后缀。
提示

StartAsync 不会阻塞当前线程。控制台程序中可使用 Console.ReadLine 等方式保持进程运行。

三、插件

SSH 服务端可通过插件观察连接、通道请求和通道数据等过程。常用接口包括:

插件接口触发时机
ISshConnectingPlugin开始建立 SSH 连接时。
ISshConnectedPlugin完成 SSH 握手和认证后。
ISshChannelRequestPlugin收到通道请求时。
ISshChannelDataPlugin收到通道数据时。
ISshClosingPluginISshClosedPlugin连接关闭前及关闭后。

四、示例 Demo