@electerm/ssh2
v1.22.0
Published
SSH2 client and server modules written in pure JavaScript for node.js
Maintainers
Readme
@electerm/ssh2
A fork of ssh2 — SSH2 client and server modules written in pure JavaScript for Node.js.
This library is designed for and used by electerm, an open-sourced terminal/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client for Linux, Mac, Windows, and Android.
Installation
npm i @electerm/ssh2Additional Features
Built on top of the original ssh2, this fork adds the following features:
SM2 / SM3 / SM4 (Chinese National Crypto) Support
Full support for Chinese national cryptographic standards (GM/T), with no native compilation required (pure JavaScript):
| Algorithm | Type | Description |
|-----------|------|-------------|
| sm2kep-sha3-sm3 | Key Exchange | SM2 ECDH key exchange with SM3 hash |
| ssh-sm2 | Host Key / Signature | SM2 signature with SM3 hash |
| sm4-ctr, sm4-cbc | Cipher | SM4 block cipher |
| hmac-sm3, [email protected] | MAC | HMAC with SM3 hash |
See SM Guide for details.
SSH Certificate Login
Authenticate using SSH certificates via the new certificate connect option:
client.connect({
host: '127.0.0.1',
username: 'admin',
privateKey: fs.readFileSync('/path/to/key'),
certificate: fs.readFileSync('/path/to/cert'), // SSH certificate
});Enhanced Keepalive
Both TCP-level (SO_KEEPALIVE) and SSH protocol-level keepalives to reliably detect and clean up dead connections.
SFTP Non-UTF8 Encoding Support
Added an encode option to handle SFTP file names and shell output in non-UTF8 encodings (e.g. GBK):
client.connect({
// ...
encode: 'gbk',
});Other Improvements & Fixes
- Support for
EXT_INFOmessages - Fix zlib errors crashing the session
- Fix large text in SFTP headers breaking the connection
- Force RSA key support even when the server does not agree
- No native build required — replaces
optionalDependencieswith regulardependencies
electerm Related Projects
| Project | Description | |---------|-------------| | electerm | Desktop app (Linux, Mac, Windows) | | electerm-web | Browser-based version (including mobile) | | electerm-web-docker | Docker image for electerm-web | | electerm online | Public free online app | | electerm demo | Online demo | | electerm-locales | Multi-language support | | electerm AI | Free AI for electerm users | | electerm-android | Android app |
License
MIT
