UNPKG

@microsoft/dev-tunnels-ssh

Version:

SSH library for Dev Tunnels

33 lines (28 loc) 1.73 kB
# Dev Tunnels SSH Library A Secure Shell (SSH2) client and server protocol implementation for Node.js and browser environments. ## Feature Highlights - SSH over any JavaScript stream (including but not limited to Node.js TCP sockets and browser websockets) - Configurable, extensible, negotiated algorithms for key-exchange, encryption, integrity (HMAC), and public-key authentication - Channel multiplexing, with ability to stream data to/from channels - Piping between two sessions can relay all channels and port-forwarding - Extensible channel request handling (for "exec", "shell", or custom requests) - Supports reconnecting a disconnected session without disrupting channel streams. - Compatible with common SSH software. (Tested against OpenSSH.) ### Limitations The following features are not implemented in typescript implementation yet, and we have plans to implement the same: - Async processing of messages and ability to send one message before receiving response for a previous one. ## Requirements The TypeScript implementation supports either Node.js (>= 14.x) or a browser environment. When running on Node.js, it uses the Node.js built-in [crypto](https://nodejs.org/api/crypto.html) module. When running in a browser it uses the [Web Crypto API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API), which is supported by all modern browsers. However note that since script on a web page cannot access native TCP sockets, the standard use of SSH over TCP is not possible; some other stream transport like a websocket may be used. ## Packages The optional `dev-tunnels-ssh-tcp` and `dev-tunnels-ssh-keys` depend on the core `dev-tunnels-ssh` package.