@electerm/ssh2

中文文档
1.23.0发布于 2026/10/31CommonJS构建来源已验证近 30 天下载 3952

以纯 JavaScript 为节点编写的 SSH2 客户端和服务器模块

中文使用文档
文档目录9 节
  1. 安装
  2. 其他特征
  3. SM2 / SM3 / SM4(中国国家密码) 支持
  4. SSH 证书登录
  5. 增强保存性
  6. SFTP 非UTF8 编码支持
  7. 其他改进和修正
  8. 相关项目
  9. 许可证

@ electerm/ ssh2 (英语)

联合国 | 页:1

一个叉子 斜线2 ——SSH2客户端和服务器模块以纯JavaScript为Node.js所写.

此库是专门为下列人员设计和使用的: 选手,用于Linux,Mac,Windows和Android的开源终端/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice客户端.

安装

npm i @electerm/ssh2

其他特征

建于原版顶上 ssh2,这个叉增加了以下特性:

SM2 / SM3 / SM4(中国国家密码) 支持

全面支持中国国家密码标准(GM/T),不需要本土编译(纯JavaScript):

算法类型说明
sm2kep-sha3-sm3密钥交换SM2 ECDH 与 SM3 散列键交换
ssh-sm2主机密钥/ 签名SM2 与 SM3 散列签名
sm4-ctr, (中文(简体) ), sm4-cbc密码SM4 块密码
hmac-sm3, (中文(简体) ), [email protected]邮件HMAC 有 SM3 散列

见 SM 指南 详细情况.

SSH 证书登录

通过新的 SSH 证书认证 certificate 连接选项 :

client.connect({
  host: '127.0.0.1',
  username: 'admin',
  privateKey: fs.readFileSync('/path/to/key'),
  certificate: fs.readFileSync('/path/to/cert'),  // SSH certificate
});

增强保存性

TCP 两级SO_KEEPALIVE)和SSH协议级保存器,以可靠地检测并清理已死连接.

SFTP 非UTF8 编码支持

添加一个 encode 在非UTF8编码中处理 SFTP 文件名和 shell 输出的选项( 如 GBK) :

client.connect({
  // ...
  encode: 'gbk',
});

其他改进和修正

  • 支助 EXT_INFO 信件
  • 修正崩溃会话的 zlib 错误
  • 在中断连接的 SFTP 信头中修正大文本
  • 强制 RSA 密钥支持, 即使服务器不同意
  • 不需要土建——替换 optionalDependencies 经常 dependencies
项目说明
选手桌面应用程序( Linux, Mac, Windows)
选手-网络基于浏览器的版本(包括移动)
选手- 网点Electerm-web 的嵌入器图像
在线选举器公共免费在线应用
选手演示在线演示
选民-地方多语种支助
选手AI选手用户免费 AI
选手与机器人Android 应用程序

许可证

麻省理工学院

版本与发布记录

@electerm/ssh2 共发布 39 个版本,首次发布于 2018/12/18;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.23.0latest2026/10/3113 天前
1.22.22026/10/2717 天前
1.22.12026/09/151 个月前
1.22.02026/07/233 个月前
1.21.02026/07/233 个月前
1.20.12026/06/304 个月前

关于 @electerm/ssh2 的常见问题

@electerm/ssh2 是什么?

以纯 JavaScript 为节点编写的 SSH2 客户端和服务器模块

如何安装 @electerm/ssh2?

在项目目录运行 npm install @electerm/ssh2,或使用 pnpm add / yarn add / bun add。

@electerm/ssh2 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/electerm__ssh2 是否存在。

@electerm/ssh2 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@electerm/ssh2 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=10.16.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@electerm/ssh2 可以商用吗?

@electerm/ssh2 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@electerm/ssh2 的下载量有多少?

根据 npm 官方下载统计,@electerm/ssh2 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,952 次,日均约 132 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@electerm/ssh2 还在维护吗?

最新版本 1.23.0 发布于 2026/10/31(13 天前);至今共发布 39 个版本,其中过去 12 个月发布了 14 个;首次发布于 2018/12/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。