@bobsled/ssh2
Version:
SSH2 client and server modules written in pure JavaScript for node.js
697 lines (651 loc) • 163 kB
Markdown
# v1.16.3 (Wed Jan 22 2025)
#### ⚠️ Pushed to `master`
- Merge remote-tracking branch 'origin/master' ([@J4cku](https://github.com/J4cku))
- Update maxReadLen ([@J4cku](https://github.com/J4cku))
#### Authors: 1
- Jacek Leszczyński ([@J4cku](https://github.com/J4cku))
---
# v1.16.2 (Wed Jan 22 2025)
#### ⚠️ Pushed to `master`
- Update maxReadLen ([@J4cku](https://github.com/J4cku))
#### Authors: 1
- Jacek Leszczyński ([@J4cku](https://github.com/J4cku))
---
# v1.15.7 (Wed Jan 15 2025)
#### ⚠️ Pushed to `master`
- package: bump version to v1.16.0 ([@mscdex](https://github.com/mscdex))
- readme: fix Github markdown rendering ([@mscdex](https://github.com/mscdex))
- readme: update hostVerifier documentation ([@mscdex](https://github.com/mscdex))
- keyParser: fix equals() ([@mscdex](https://github.com/mscdex))
- client: fix implicit key hashing during rekey (ishan37371@gmail.com)
#### Authors: 2
- Ishan (ishan37371@gmail.com)
- mscdex ([@mscdex](https://github.com/mscdex))
---
# v1.15.6 (Thu Aug 08 2024)
#### ⚠️ Pushed to `master`
- FIX: fixed issue with multipart ([@williams-bobsled](https://github.com/williams-bobsled))
#### Authors: 1
- Williams ([@williams-bobsled](https://github.com/williams-bobsled))
---
# v1.15.5 (Wed Aug 07 2024)
#### ⚠️ Pushed to `master`
- ADD: Added back ignore ([@williams-bobsled](https://github.com/williams-bobsled))
- MOD: removed crypto ([@williams-bobsled](https://github.com/williams-bobsled))
- MOD: ignored back vrypto ([@williams-bobsled](https://github.com/williams-bobsled))
- ADD: Added crypto build to package ([@williams-bobsled](https://github.com/williams-bobsled))
#### Authors: 1
- Williams ([@williams-bobsled](https://github.com/williams-bobsled))
---
# v1.15.3 (Wed Aug 07 2024)
#### ⚠️ Pushed to `master`
- ADD: pnpm to action ([@williams-bobsled](https://github.com/williams-bobsled))
- MOD: minor changes ([@williams-bobsled](https://github.com/williams-bobsled))
- MOD: minor lint fixes ([@williams-bobsled](https://github.com/williams-bobsled))
- MOD: removed build comand ([@williams-bobsled](https://github.com/williams-bobsled))
- fixed package ([@williams-bobsled](https://github.com/williams-bobsled))
#### Authors: 1
- Williams ([@williams-bobsled](https://github.com/williams-bobsled))
---
# v1.15.3 (Wed Aug 07 2024)
#### ⚠️ Pushed to `master`
- MOD: minor lint fixes ([@williams-bobsled](https://github.com/williams-bobsled))
- MOD: removed build comand ([@williams-bobsled](https://github.com/williams-bobsled))
- fixed package ([@williams-bobsled](https://github.com/williams-bobsled))
#### Authors: 1
- Williams ([@williams-bobsled](https://github.com/williams-bobsled))
---
# v1.15.2 (Wed Aug 07 2024)
#### 🐛 Bug Fix
- Sled [#2](https://github.com/rhizo-co/ssh2/pull/2) ([@williams-bobsled](https://github.com/williams-bobsled))
- Sled [#1](https://github.com/rhizo-co/ssh2/pull/1) ([@eastlondoner](https://github.com/eastlondoner) [@williams-bobsled](https://github.com/williams-bobsled))
#### ⚠️ Pushed to `master`
- ADD: Added auto (williams@bobsled.co)
- ci: bump setup-python to v5 ([@mscdex](https://github.com/mscdex))
- ci: bump checkout and setup-node to v4 ([@mscdex](https://github.com/mscdex))
- ci: add node v22.x ([@mscdex](https://github.com/mscdex))
- package: bump cpu-features to v0.0.10 and nan to v2.20.0 ([@mscdex](https://github.com/mscdex))
- SFTP: replace deprecated util.isDate() ([@wdavidw](https://github.com/wdavidw))
- package: bump version to v1.15.0 ([@mscdex](https://github.com/mscdex))
- package: bump nan to v2.18.0 ([@mscdex](https://github.com/mscdex))
- ci: update test workflow ([@mscdex](https://github.com/mscdex))
- lib: add strict key exchange mode support ([@mscdex](https://github.com/mscdex))
- package: bump cpu-features version to v0.0.9 ([@mscdex](https://github.com/mscdex))
- ci: update workflows ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.14.0 ([@mscdex](https://github.com/mscdex))
- package: bump cpu-features to v0.0.8 ([@mscdex](https://github.com/mscdex))
- ci: attempt to fix Python 2.7 support ([@mscdex](https://github.com/mscdex))
- ci: switch Python 2.7 installation method ([@mscdex](https://github.com/mscdex))
- protocol/kex: always immediately update decipher ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.13.0 ([@mscdex](https://github.com/mscdex))
- package: bump various dependency versions ([@mscdex](https://github.com/mscdex))
- test: add keygen tests ([@mscdex](https://github.com/mscdex))
- keyParser: style fix ([@mscdex](https://github.com/mscdex))
- keyParser: ensure auto padding is disabled ([@mscdex](https://github.com/mscdex))
- keygen: fix undefined value ([@mscdex](https://github.com/mscdex))
- lib,readme: add key generators ([@mscdex](https://github.com/mscdex))
- lib: add initial SSH key generators ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.12.0 ([@mscdex](https://github.com/mscdex))
- ci: update lint workflow ([@mscdex](https://github.com/mscdex))
- test: fix race condition causing intermittent test failure ([@mscdex](https://github.com/mscdex))
- ci: add node v20.x ([@mscdex](https://github.com/mscdex))
- lib: add server-sig-algs support ([@mscdex](https://github.com/mscdex))
- readme: fix typo ([@mscdex](https://github.com/mscdex))
- package: bump cpu-features dep to v0.0.6 ([@mscdex](https://github.com/mscdex))
- package: bump nan to ^2.17.0, cpu-features to ~0.0.5 ([@mscdex](https://github.com/mscdex))
- ci: update action versions ([@mscdex](https://github.com/mscdex))
- client,server: add setNoDelay() ([@mscdex](https://github.com/mscdex))
- readme: add missing property for client pty requests ([@mscdex](https://github.com/mscdex))
- SFTP: add support for newer extension requests ([@mscdex](https://github.com/mscdex))
- SFTP: fix ext_openssh_expandPath() callback value type ([@mscdex](https://github.com/mscdex))
- lib: fix lint issues ([@mscdex](https://github.com/mscdex))
- crypto: mark binding as worker-enabled ([@mscdex](https://github.com/mscdex))
- crypto: expand scope of disabled warning ([@mscdex](https://github.com/mscdex))
- docs: add missing SFTP copy-data extended request ([@mscdex](https://github.com/mscdex))
- readme: fix incomplete authHandler documentation ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.11.0 ([@mscdex](https://github.com/mscdex))
- package: bump eslint-config dev dependency version ([@mscdex](https://github.com/mscdex))
- package: bump nan dependency version ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.10.0 ([@mscdex](https://github.com/mscdex))
- SFTP: drain buffer if channel opened with empty window ([@mscdex](https://github.com/mscdex))
- ci: add node v18.x ([@mscdex](https://github.com/mscdex))
- crypto: work around deprecated OpenSSL APIs ([@mscdex](https://github.com/mscdex))
- crypto: ignore useless gcc warnings ([@mscdex](https://github.com/mscdex))
- SFTP: rename closed status property ([@mscdex](https://github.com/mscdex))
- SFTP: fix read() callback buffer argument ([@mscdex](https://github.com/mscdex))
- SFTP: add copy-data extended request ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.9.0 ([@mscdex](https://github.com/mscdex))
- package: bump cpu-features to v0.0.4 ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.8.0 ([@mscdex](https://github.com/mscdex))
- package: bump cpu-features to v0.0.3 ([@mscdex](https://github.com/mscdex))
- install,lib: fix issues where node's bundled OpenSSL and linked OpenSSL differ ([@mscdex](https://github.com/mscdex))
- binding: remove superfluous EVP_CIPHER_CTX_cleanup() ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.7.0 ([@mscdex](https://github.com/mscdex))
- protocol: fatal error due to undefined DISCONNECT_REASON (vinay@smplabs.com)
- lib,test: add initial support for node v17+ ([@mscdex](https://github.com/mscdex))
- protocol: add simple cipher and mac algorithm checks ([@mscdex](https://github.com/mscdex))
- package: bump version to v1.6.0 ([@mscdex](https://github.com/mscdex))
- SFTP: fix lint issue ([@mscdex](https://github.com/mscdex))
- SFTP: be less strict with status response parsing ([@mscdex](https://github.com/mscdex))
- keyParser: fix returning of errors ([@Marcel-a](https://github.com/Marcel-a))
- protocol/constants: re-add non-OpenSSH variants of 'aes128-gcm' and 'aes256-gcm' to supported ciphers ([@cole-mujadzic-liongard](https://github.com/cole-mujadzic-liongard))
- Channel: return `this` from `destroy()` ([@danielroe](https://github.com/danielroe))
- bump version to v1.5.0 ([@mscdex](https://github.com/mscdex))
- lib: fix server channel cleanup for bare sessions ([@mscdex](https://github.com/mscdex))
- test: remove non-OpenSSH GCM ciphers ([@mscdex](https://github.com/mscdex))
- client,Protocol: make protocol start explicit ([@mscdex](https://github.com/mscdex))
- readme: fix markdown ([@mscdex](https://github.com/mscdex))
- protocol/constants: remove non-OpenSSH GCM cipher names ([@mscdex](https://github.com/mscdex))
- protocol/crypto: simplify null deciphering ([@mscdex](https://github.com/mscdex))
- protocol/kex: fix Cisco-specific payload rewriting ([@mscdex](https://github.com/mscdex))
- docs: fix markdown rendering ([@mscdex](https://github.com/mscdex))
- docs: add missing SFTP OpenSSH extension functions ([@mscdex](https://github.com/mscdex))
- bump version to 1.4.0 ([@mscdex](https://github.com/mscdex))
- protocol/crypto: fix CBC decrypting in binding ([@mscdex](https://github.com/mscdex))
- Protocol: add type check ([@mscdex](https://github.com/mscdex))
- SFTP: increase max packet length, add missing OpenSSH extensions ([@mscdex](https://github.com/mscdex))
- test: fix OpenSSH key auth checking ([@mscdex](https://github.com/mscdex))
- bump version to 1.3.0 ([@mscdex](https://github.com/mscdex))
- protocol/kex: do not wait to send NEWKEYS ([@mscdex](https://github.com/mscdex))
- readme: fix parseKey usage in example ([@xxorax](https://github.com/xxorax))
- readme: sort event, method, and property names ([@mscdex](https://github.com/mscdex))
- docs: fix typos ([@bl-ue](https://github.com/bl-ue))
- test: fix lint issue ([@mscdex](https://github.com/mscdex))
- Server: allow injected sockets ([@mscdex](https://github.com/mscdex))
- bump version to 1.2.0 ([@mscdex](https://github.com/mscdex))
- Protocol: squeeze ident and CRLF into same write ([@mscdex](https://github.com/mscdex))
- SFTP: fix channel status checking ([@mscdex](https://github.com/mscdex))
- crypto: remove emscripten's unhandledRejection handler ([@mscdex](https://github.com/mscdex))
- lib: add hostkeys-00 support ([@mscdex](https://github.com/mscdex))
- protocol/kex: fix preferred prime size calculation ([@mscdex](https://github.com/mscdex))
- readme: fix authHandler value type ([@mscdex](https://github.com/mscdex))
- test: skip OpenSSH integration tests on Windows ([@mscdex](https://github.com/mscdex))
- test: improve log message ([@mscdex](https://github.com/mscdex))
- test: bypass ssh-agent test on Windows for now ([@mscdex](https://github.com/mscdex))
- binding: avoid missing symbol on Windows ([@mscdex](https://github.com/mscdex))
- binding: avoid VLA to appease MSVC ([@mscdex](https://github.com/mscdex))
- ci: remove windows-build-tools ([@mscdex](https://github.com/mscdex))
- ci: add windows target ([@mscdex](https://github.com/mscdex))
- version: v1.1.0 ([@mscdex](https://github.com/mscdex))
- ci: add explicit minimum node version ([@mscdex](https://github.com/mscdex))
- lib: perform async crypto init ([@mscdex](https://github.com/mscdex))
- version: v1.0.0 ([@mscdex](https://github.com/mscdex))
- package: bump nan version ([@mscdex](https://github.com/mscdex))
- ci: update github lint workflow ([@mscdex](https://github.com/mscdex))
- package: use external lint config ([@mscdex](https://github.com/mscdex))
- readme: add missing authHandler() changes ([@mscdex](https://github.com/mscdex))
- SFTP: explicitly set autoClose option for node 14+ ([@imatlopez](https://github.com/imatlopez))
- lib,test: fix lint issues ([@mscdex](https://github.com/mscdex))
- client: prevent reserved channel leak on rejected channel open ([@mscdex](https://github.com/mscdex))
- lib: add more flexible auth handling ([@mscdex](https://github.com/mscdex))
- keyParser: don't return array for newer OpenSSH keys ([@mscdex](https://github.com/mscdex))
- Channel: call both end() and close() on destroy ([@mscdex](https://github.com/mscdex))
- Channel: use close() for destroy() ([@mscdex](https://github.com/mscdex))
- lib: clean up various TODOs ([@mscdex](https://github.com/mscdex))
- lib: remove outdated comment ([@mscdex](https://github.com/mscdex))
- ci: node v15.x->v16.x ([@mscdex](https://github.com/mscdex))
- test: make assertion more reliable ([@mscdex](https://github.com/mscdex))
- Client: emit just one error on connection fail ([@mscdex](https://github.com/mscdex))
- lint: update rules ([@mscdex](https://github.com/mscdex))
- lib: fix read() overflow handling ([@mscdex](https://github.com/mscdex))
- test: include more error details ([@mscdex](https://github.com/mscdex))
- lib: fix ident parsing ([@mscdex](https://github.com/mscdex))
- keyParser: make RFC4716 key parsing more strict ([@mscdex](https://github.com/mscdex))
- SFTP: adjust packet length calculations ([@mscdex](https://github.com/mscdex))
- Client,Server: handle protocol parsing errors ([@mscdex](https://github.com/mscdex))
- protocol/kex: remove old comment ([@mscdex](https://github.com/mscdex))
- protocol/crypto: fix OpenSSL error handling in binding ([@mscdex](https://github.com/mscdex))
- protocol/kex: fix lint issue ([@mscdex](https://github.com/mscdex))
- SFTP: fix incorrect outgoing data buffering ([@mscdex](https://github.com/mscdex))
- test: fix expired certificate ([@mscdex](https://github.com/mscdex))
- SFTP: fix comment typo ([@mscdex](https://github.com/mscdex))
- SFTP: clean up outstanding requests on close ([@mscdex](https://github.com/mscdex))
- SFTP: use stricter type checking ([@mscdex](https://github.com/mscdex))
- Protocol: add length in CHANNEL_DATA debug output ([@mscdex](https://github.com/mscdex))
- protocol/kex: fix group exchange implementation ([@mscdex](https://github.com/mscdex))
- lib: add workaround for node regression ([@mscdex](https://github.com/mscdex))
- test: fix event count expection ([@mscdex](https://github.com/mscdex))
- Client: remove 'error' event check ([@mscdex](https://github.com/mscdex))
- ci: always run on all versions ([@mscdex](https://github.com/mscdex))
- Client: emit error on pre-handshake connection loss ([@mscdex](https://github.com/mscdex))
- Protocol: allocate NullCipher early ([@mscdex](https://github.com/mscdex))
- ci: add node v15.x ([@mscdex](https://github.com/mscdex))
- ci,readme: remove Travis CI ([@mscdex](https://github.com/mscdex))
- ci: fix module installation ([@mscdex](https://github.com/mscdex))
- ci: first attempt at Github Actions ([@mscdex](https://github.com/mscdex))
- crypto: use correct length in memset() ([@mscdex](https://github.com/mscdex))
- crypto: fix array initialization in binding ([@mscdex](https://github.com/mscdex))
- Server: remove outdated comment ([@mscdex](https://github.com/mscdex))
- httpAgents: add another workaround, this time for node v12.x only ([@mscdex](https://github.com/mscdex))
- httpAgents: add workaround for node regression ([@mscdex](https://github.com/mscdex))
- test: fix client/server config copying ([@mscdex](https://github.com/mscdex))
- test: include test name in exception ([@mscdex](https://github.com/mscdex))
- test: fix OpenSSH test timing out ([@mscdex](https://github.com/mscdex))
- test: fix client/server config handling ([@mscdex](https://github.com/mscdex))
- test: exit non-zero for any failing test file ([@mscdex](https://github.com/mscdex))
- ci: add node v15 ([@mscdex](https://github.com/mscdex))
- Server: fix channel end detection ([@mscdex](https://github.com/mscdex))
- test: add openssh_forwardOutStreamLocal() test ([@mscdex](https://github.com/mscdex))
- lib: fix channel end, close event order ([@mscdex](https://github.com/mscdex))
- readme,Server: remove ctx.sigAlgo and update docs ([@mscdex](https://github.com/mscdex))
- keyParser: fix ASCII hex digit check ([@mscdex](https://github.com/mscdex))
- lib: fix regexp-based algorithm matching ([@mscdex](https://github.com/mscdex))
- lib: match public name for consistency ([@mscdex](https://github.com/mscdex))
- readme: fix algorithms documentation ([@mscdex](https://github.com/mscdex))
- test: add http(s) agent tests ([@mscdex](https://github.com/mscdex))
- lib: add workaround for ended streams ([@mscdex](https://github.com/mscdex))
- lib: fix http(s) agent ([@mscdex](https://github.com/mscdex))
- Server: fix missing server flags ([@mscdex](https://github.com/mscdex))
- test: fix debug output handling ([@mscdex](https://github.com/mscdex))
- lib: fix signal handling ([@mscdex](https://github.com/mscdex))
- readme: add further clarification to optional dependency ([@mscdex](https://github.com/mscdex))
- readme: mention optional package dependency ([@mscdex](https://github.com/mscdex))
- lib: re-add password change mechanism ([@mscdex](https://github.com/mscdex))
- test: add debug test ([@mscdex](https://github.com/mscdex))
- package: fix main entry point ([@mscdex](https://github.com/mscdex))
- test: fix flaky subsystem test ([@mscdex](https://github.com/mscdex))
- Server: fix keyboard-interactive handling ([@mscdex](https://github.com/mscdex))
- test: expand code coverage ([@mscdex](https://github.com/mscdex))
- lib: remove unused code ([@mscdex](https://github.com/mscdex))
- test: refactor tests ([@mscdex](https://github.com/mscdex))
- lib: ensure cleanup when server connections end ([@mscdex](https://github.com/mscdex))
- SFTP: fix `fs` usage again ([@mscdex](https://github.com/mscdex))
- test: add setWindow()/'window-change' test ([@mscdex](https://github.com/mscdex))
- test: simplify exec test ([@mscdex](https://github.com/mscdex))
- test: be more strict about function invocations ([@mscdex](https://github.com/mscdex))
- doc: update SFTP documentation ([@mscdex](https://github.com/mscdex))
- test: add zlib tests ([@mscdex](https://github.com/mscdex))
- SFTP: fix constants usage ([@mscdex](https://github.com/mscdex))
- install: explicitly pass target to node-gyp ([@mscdex](https://github.com/mscdex))
- crypto: remove commented code ([@mscdex](https://github.com/mscdex))
- examples,lib,test: switch to code rewrite ([@mscdex](https://github.com/mscdex))
- bump version ([@mscdex](https://github.com/mscdex))
- package: bump ssh2-streams dependency ([@mscdex](https://github.com/mscdex))
- ci: add node v13 for curve25519 testing ([@mscdex](https://github.com/mscdex))
- test: add fix for recent node versions ([@mscdex](https://github.com/mscdex))
- readme: update node version requirement ([@mscdex](https://github.com/mscdex))
- package: update ssh2-streams dependency ([@mscdex](https://github.com/mscdex))
- test: add GCM rekey test ([@mscdex](https://github.com/mscdex))
- package: bump ssh2-streams dep version ([@mscdex](https://github.com/mscdex))
- package: bump ssh2-streams dep version ([@KodeStar](https://github.com/KodeStar))
- readme: fix signature verification ([@fredericosilva](https://github.com/fredericosilva))
- readme: fix 'close' event documentation ([@mscdex](https://github.com/mscdex))
- Client: check stderr.resume is a function first ([@mscdex](https://github.com/mscdex))
- test: fix some tests on OpenSSH 8.0+ ([@mscdex](https://github.com/mscdex))
- test: misc changes for OpenSSH integration tests ([@mscdex](https://github.com/mscdex))
- readme: switch to forwardOut() for connection hop ([@mscdex](https://github.com/mscdex))
- lib: add http(s).Agent implementations ([@mscdex](https://github.com/mscdex))
- examples: add missing break statement (andrew@whosonlocation.com)
- Client: Support terminal modes in pty options (thingalon@gmail.com)
- Channel: increase max window size ([@mscdex](https://github.com/mscdex))
- Server: fix new OpenSSH key usage ([@mscdex](https://github.com/mscdex))
- ci: add node v12 ([@mscdex](https://github.com/mscdex))
- readme: minor updates ([@mscdex](https://github.com/mscdex))
- lib: add ed25519 key support ([@mscdex](https://github.com/mscdex))
- readme: remove references to stderr for shell() ([@mscdex](https://github.com/mscdex))
- Client: support localAddress and localPort config options ([@mscdex](https://github.com/mscdex))
- Server: provide client socket family and port number ([@mscdex](https://github.com/mscdex))
- readme: add valid authentication method names ([@mscdex](https://github.com/mscdex))
- test: correct assertion message ([@AndrewLane](https://github.com/AndrewLane))
- Agent: assume Windows pipe path is an ssh-agent socket ([@SchoofsKelvin](https://github.com/SchoofsKelvin))
- Client: support custom X11 protocol and cookie ([@mscdex](https://github.com/mscdex))
- test: cleanup ([@mscdex](https://github.com/mscdex))
- Channel: simplify incoming state check ([@mscdex](https://github.com/mscdex))
- Client: add missing null checks for objects ([@mscdex](https://github.com/mscdex))
- readme: update server examples ([@mscdex](https://github.com/mscdex))
- Client: add check for newer OpenSSH key format ([@mscdex](https://github.com/mscdex))
- client: allow custom auth handling function ([@mscdex](https://github.com/mscdex))
- readme: fix node version requirement ([@mscdex](https://github.com/mscdex))
- ci: remove node v4 ([@mscdex](https://github.com/mscdex))
- lib,test: fix ssh2-streams API usage ([@mscdex](https://github.com/mscdex))
- readme: fix hostHash description ([@mscdex](https://github.com/mscdex))
- Channel: allow window adjustments after closing stdin ([@mscdex](https://github.com/mscdex))
- lib: move utility function to only file it's used in ([@mscdex](https://github.com/mscdex))
- test: increase test timeout ([@mscdex](https://github.com/mscdex))
- Client: don't emit handshake timeout error on handshake error ([@mscdex](https://github.com/mscdex))
- Client: fix compatibility with node v10.x ([@mscdex](https://github.com/mscdex))
- test: check error level ([@mscdex](https://github.com/mscdex))
- Server: fix compatibility with node v10.x ([@mscdex](https://github.com/mscdex))
- Client: only set error level when not defined ([@mscdex](https://github.com/mscdex))
- ci: replace node v9 with v10 ([@mscdex](https://github.com/mscdex))
- lib,test: use more generic sha1 hash ([@mscdex](https://github.com/mscdex))
- meta: update ssh2-streams dependency ([@mscdex](https://github.com/mscdex))
- lib,test: update code for modern node versions ([@mscdex](https://github.com/mscdex))
- Client: call outstanding channel open request callbacks on cleanup ([@mscdex](https://github.com/mscdex))
- Server: export incoming client class ([@131](https://github.com/131))
- Client: fix OpenSSH UNIX socket forwarding support ([@mscdex](https://github.com/mscdex))
- test: add test timeout ([@mscdex](https://github.com/mscdex))
- readme: add TOC ([@mscdex](https://github.com/mscdex))
- readme: document timing attacks in server examples ([@pzrq](https://github.com/pzrq))
- Client: fix empty username checking ([@mscdex](https://github.com/mscdex))
- Client: allow env vars to be sent with shell() ([@mscdex](https://github.com/mscdex))
- test: fix tests after auth method order change ([@mscdex](https://github.com/mscdex))
- Client: try 'none' auth first ([@mscdex](https://github.com/mscdex))
- Client: disable TCP keepalive ([@mscdex](https://github.com/mscdex))
- ci: add node v7 ([@mscdex](https://github.com/mscdex))
- Client: catch and emit data signing errors ([@mscdex](https://github.com/mscdex))
- readme,test: update documentation and tests to align with upstream changes ([@mscdex](https://github.com/mscdex))
- test: simplify assertion message generation ([@mscdex](https://github.com/mscdex))
- test: add test for handshake errors ([@mscdex](https://github.com/mscdex))
- Client: add workaround for binding on port 0 with OpenSSH 5.x server ([@mscdex](https://github.com/mscdex))
- Channel: adjust window sooner ([@mscdex](https://github.com/mscdex))
- readme: document `env` event for server session objects ([@mscdex](https://github.com/mscdex))
- examples: update code examples ([@mscdex](https://github.com/mscdex))
- ci: add node v6.x ([@mscdex](https://github.com/mscdex))
- test: fix OpenSSH version parsing ([@mscdex](https://github.com/mscdex))
- ci: output installed OpenSSH version ([@mscdex](https://github.com/mscdex))
- test: restrict OpenSSH flag to specific versions ([@mscdex](https://github.com/mscdex))
- test: re-enable OpenSSH DSS/DSA key support ([@mscdex](https://github.com/mscdex))
- test: add encrypted private key auth test ([@mscdex](https://github.com/mscdex))
- readme: fix examples' style ([@mscdex](https://github.com/mscdex))
- readme: add travis-ci badge ([@mscdex](https://github.com/mscdex))
- test: fix syntax error ([@mscdex](https://github.com/mscdex))
- Channel: fix premature emitting of close event ([@mscdex](https://github.com/mscdex))
- lib: clean up outstanding callbacks on channel close ([@mscdex](https://github.com/mscdex))
- Channel: fix premature stderr closing on server ([@mscdex](https://github.com/mscdex))
- test: fix fingerprint verification test ([@mscdex](https://github.com/mscdex))
- Client: support async host fingerprint verification ([@mscdex](https://github.com/mscdex))
- test: fix file permissions to avoid OpenSSH client issues ([@mscdex](https://github.com/mscdex))
- test: add server tests with OpenSSH client ([@mscdex](https://github.com/mscdex))
- Server: guarantee global-request reply order (richard.bann@vertis.com)
- examples: add a download-only SFTP server example ([@uberbrady](https://github.com/uberbrady))
- test: add missing version check ([@mscdex](https://github.com/mscdex))
- test: update version check ([@mscdex](https://github.com/mscdex))
- Client: remove dsa-specific signature modding ([@mscdex](https://github.com/mscdex))
- agent: fix agent forwarding with pageant ([@mscdex](https://github.com/mscdex))
- test: add missing fixtures ([@mscdex](https://github.com/mscdex))
- test: add tests for ECDSA and algorithms option ([@mscdex](https://github.com/mscdex))
- test: fix style ([@mscdex](https://github.com/mscdex))
- test: remove unnecessary binary encoding usage ([@mscdex](https://github.com/mscdex))
- test: use better naming ([@mscdex](https://github.com/mscdex))
- test: improve tests' event checking ([@mscdex](https://github.com/mscdex))
- examples: fix server chat style and update API usage ([@mscdex](https://github.com/mscdex))
- readme: update examples and server API ([@mscdex](https://github.com/mscdex))
- test: update tests ([@mscdex](https://github.com/mscdex))
- Server: only force objects for encrypted keys ([@mscdex](https://github.com/mscdex))
- test: fix style and remove unused variables ([@mscdex](https://github.com/mscdex))
- Server: allow algorithms config and multiple host keys ([@mscdex](https://github.com/mscdex))
- Server: style changes ([@mscdex](https://github.com/mscdex))
- Client: reuse data conversion functions from ssh2-streams ([@mscdex](https://github.com/mscdex))
- Client: remove more binary string usage ([@mscdex](https://github.com/mscdex))
- readme: remove binary string usage in example ([@mscdex](https://github.com/mscdex))
- Client: support ECDSA keys from ssh agent ([@mscdex](https://github.com/mscdex))
- Client: use consistent key type checking ([@mscdex](https://github.com/mscdex))
- Client: remove nonexistent parameters ([@mscdex](https://github.com/mscdex))
- agent: fix style ([@mscdex](https://github.com/mscdex))
- Channel: fix style ([@mscdex](https://github.com/mscdex))
- Channel: remove unused module ([@mscdex](https://github.com/mscdex))
- bump node version requirement ([@mscdex](https://github.com/mscdex))
- readme: update config options ([@mscdex](https://github.com/mscdex))
- Client: allow force disable of compression ([@mscdex](https://github.com/mscdex))
- Client: allow configurable algorithms ([@mscdex](https://github.com/mscdex))
- Client: use cached crypto hashes list ([@mscdex](https://github.com/mscdex))
- Client: use stricter length check ([@mscdex](https://github.com/mscdex))
- Client: fix style ([@mscdex](https://github.com/mscdex))
- Channel: ensure readable/writable gets updated ([@mscdex](https://github.com/mscdex))
- lib: add ECDSA key support ([@mscdex](https://github.com/mscdex))
- Server: avoid re-parsing server key on every connection ([@mscdex](https://github.com/mscdex))
- readme: improve example descriptions a bit ([@mscdex](https://github.com/mscdex))
- test: add server greeting test ([@mscdex](https://github.com/mscdex))
- test: fix capitalization ([@mscdex](https://github.com/mscdex))
- Client: only use bound port reported by server if requested port is 0 ([@tlunter](https://github.com/tlunter))
- Client: fix a bug in forwarded-tcpip (richard.bann@vertis.com)
- lib: use objects instead of arrays ([@mscdex](https://github.com/mscdex))
- readme: fix tcp metadata property names ([@mscdex](https://github.com/mscdex))
- Server: tweak keepalive logic ([@mscdex](https://github.com/mscdex))
- Server: remove redundant code ([@mscdex](https://github.com/mscdex))
- Server: fix constructor call without new (richard.bann@vertis.com)
- Client: use more generic OpenSSH version checking ([@mscdex](https://github.com/mscdex))
- ci: update node versions ([@mscdex](https://github.com/mscdex))
- agent: remove OLD_SIGNATURE usage for dss ([@mscdex](https://github.com/mscdex))
- Client: update OpenSSH version check ([@mscdex](https://github.com/mscdex))
- Client: fix missing banner event ([@mscdex](https://github.com/mscdex))
- examples: update `blessed` version ([@mscdex](https://github.com/mscdex))
- test: bump test case timeout ([@mscdex](https://github.com/mscdex))
- test: force exit on non-zero exit code ([@mscdex](https://github.com/mscdex))
- ci: add travis ci ([@mscdex](https://github.com/mscdex))
- readme: add missing require() in example ([@mscdex](https://github.com/mscdex))
- Client: check socket writability instead ([@mscdex](https://github.com/mscdex))
- Channel: do not close on exit status/signal ([@mscdex](https://github.com/mscdex))
- Channel: add more guards for state change events ([@mscdex](https://github.com/mscdex))
- Client: ensure unexpected protocol errors get re-emitted ([@mscdex](https://github.com/mscdex))
- Client: allow no pty for shell() ([@mscdex](https://github.com/mscdex))
- Client: fix allowHalfOpen default value ([@mscdex](https://github.com/mscdex))
- Channel: fix allowHalfOpen default value ([@mscdex](https://github.com/mscdex))
- Client: unpipe SSH2Stream on socket close ([@mscdex](https://github.com/mscdex))
- Client: check socket writable status on end() to avoid EPIPE ([@mscdex](https://github.com/mscdex))
- Client: add setWindow() support to exec streams ([@mingqi](https://github.com/mingqi))
- readme: re-add missing Pseudo-TTY settings post-streams split ([@mscdex](https://github.com/mscdex))
- readme: add simple SFTP server example ([@mscdex](https://github.com/mscdex))
- readme: document re-exported constants ([@mscdex](https://github.com/mscdex))
- Client: re-export SFTP constants for server usage ([@mscdex](https://github.com/mscdex))
- readme: add helpful tidbit ([@mscdex](https://github.com/mscdex))
- Client: move ready timeout closer to connection time ([@mscdex](https://github.com/mscdex))
- Client: fix double SSH2Stream pipe on explicit unconnected socket ([@mscdex](https://github.com/mscdex))
- test: add PPK key auth test ([@mscdex](https://github.com/mscdex))
- SFTPWrapper: proxy 'close' event ([@mscdex](https://github.com/mscdex))
- test: add DSA host key test ([@mscdex](https://github.com/mscdex))
- agent: Use `cygpath -w` if initial cygwin socket read fails ([@mscdex](https://github.com/mscdex))
- Client: Reduce required packet size for channels ([@mscdex](https://github.com/mscdex))
- Client: fix socket connection on Windows XP ([@mscdex](https://github.com/mscdex))
- examples: update blessed version hash ([@mscdex](https://github.com/mscdex))
- examples: improve server chat ([@mscdex](https://github.com/mscdex))
- examples: add exit instructions to greeting for server chat ([@mscdex](https://github.com/mscdex))
- examples: update note for server chat example ([@mscdex](https://github.com/mscdex))
- examples: add chat server app example ([@mscdex](https://github.com/mscdex))
- Server: remove stream from keepalive manager on stream end ([@mscdex](https://github.com/mscdex))
- Server: adjust prompts with simple usage ([@mscdex](https://github.com/mscdex))
- Server: fix variable assignment ([@mscdex](https://github.com/mscdex))
- Server: always pass responses as first argument ([@mscdex](https://github.com/mscdex))
- Server: fix setting of current auth method ([@mscdex](https://github.com/mscdex))
- Server: prevent duplicate channel failure messages ([@mscdex](https://github.com/mscdex))
- agent: destroy agent socket as soon as possible ([@mscdex](https://github.com/mscdex))
- Client: add convenience options for using strictly IPv4/IPv6 ([@mscdex](https://github.com/mscdex))
- test: remove unnecessary debug output ([@mscdex](https://github.com/mscdex))
- Client: check for immediate exit code on SFTP request ([@mscdex](https://github.com/mscdex))
- Channel: ignore data on closed channel ([@mscdex](https://github.com/mscdex))
- Channel: loosen exit() and signal() usage restrictions ([@mscdex](https://github.com/mscdex))
- readme: tweak SFTPStream link text ([@mscdex](https://github.com/mscdex))
- Server: pass `methodsLeft` and `isPartial` on reject() to SSH2Stream ([@mscdex](https://github.com/mscdex))
- test: add test for push after EOF ([@mscdex](https://github.com/mscdex))
- lib: remove deletes irrelevant since node v0.10.16+ ([@mscdex](https://github.com/mscdex))
- Client: forcefully destroy socket on timeouts ([@mscdex](https://github.com/mscdex))
- readme: undocument per-session agentForward ([@mscdex](https://github.com/mscdex))
- Client: ensure agent forwarding is only enabled once per connection ([@mscdex](https://github.com/mscdex))
- Channel: remove useless code ([@mscdex](https://github.com/mscdex))
- Client: ensure all channels are closed on socket close ([@mscdex](https://github.com/mscdex))
- Client: remove undocumented config option ([@mscdex](https://github.com/mscdex))
- readme: re-add agentForward client config setting and clarify behavior ([@mscdex](https://github.com/mscdex))
- Client: check that an agent was configured before forwarding ([@mscdex](https://github.com/mscdex))
- readme: update event reference: drain -> continue ([@mscdex](https://github.com/mscdex))
- lib: re-emit continue event for client and server ([@mscdex](https://github.com/mscdex))
- deps: bump ssh2-streams ([@mscdex](https://github.com/mscdex))
- SFTPWrapper: re-emit 'continue' ([@mscdex](https://github.com/mscdex))
- SFTPWrapper: pass on return values of proxied functions ([@mscdex](https://github.com/mscdex))
- readme: remove old upgrade info ([@mscdex](https://github.com/mscdex))
- readme: fix SFTPStream docs links ([@mscdex](https://github.com/mscdex))
- ssh2-streams is in npm now, so use version in dependencies ([@mscdex](https://github.com/mscdex))
- test: remove debug output ([@mscdex](https://github.com/mscdex))
- Channel: add missing exit code info on close ([@mscdex](https://github.com/mscdex))
- readme: document rekey() for servers ([@mscdex](https://github.com/mscdex))
- Server: allow server-initiated rekey ([@mscdex](https://github.com/mscdex))
- Server: fix sender channel id lookup ([@mscdex](https://github.com/mscdex))
- test: add test for request on disconnected ([@mscdex](https://github.com/mscdex))
- Server: prepend debug output with unique id per connection ([@mscdex](https://github.com/mscdex))
- Client: automatically call outstanding requests' callbacks ([@mscdex](https://github.com/mscdex))
- Client: more guards ([@mscdex](https://github.com/mscdex))
- Client: don't bother restarting keepalive if disconnected ([@mscdex](https://github.com/mscdex))
- Client: use push(), it's generally faster nowadays ([@mscdex](https://github.com/mscdex))
- test: improve unhandled exception display ([@mscdex](https://github.com/mscdex))
- Client: throw on request when not connected ([@mscdex](https://github.com/mscdex))
- test: remove unused function ([@mscdex](https://github.com/mscdex))
- test: use localhost instead of hard-coded IPv4 address ([@mscdex](https://github.com/mscdex))
- Client: connect() while connected should defer until close ([@mscdex](https://github.com/mscdex))
- Channel: pass exit info to `close` event handlers too ([@mscdex](https://github.com/mscdex))
- Client: remove duplicate interval check ([@mscdex](https://github.com/mscdex))
- Fix README example : wrong output ([@xxorax](https://github.com/xxorax))
- lib: use faster splicing ([@mscdex](https://github.com/mscdex))
- test: add simple sftp test ([@mscdex](https://github.com/mscdex))
- SFTPWrapper: needs EventEmitter to emit ([@mscdex](https://github.com/mscdex))
- readme: add note about sftp wrapper ([@mscdex](https://github.com/mscdex))
- Client: use SFTP wrapper for backwards compatibility ([@mscdex](https://github.com/mscdex))
- use master tarball for ssh2-streams for now ([@mscdex](https://github.com/mscdex))
- Client: fix sftp initialization ([@mscdex](https://github.com/mscdex))
- readme: improve socks proxy example ([@mscdex](https://github.com/mscdex))
- lib: ensure open channel before channel req/data ([@mscdex](https://github.com/mscdex))
- Channel: discard inbound packets if no window space ([@mscdex](https://github.com/mscdex))
- Channel: micro-optimizations ([@mscdex](https://github.com/mscdex))
- lib: micro-optimizations ([@mscdex](https://github.com/mscdex))
- lib: fix require() ([@mscdex](https://github.com/mscdex))
- Channel: add missing incoming window increment ([@mscdex](https://github.com/mscdex))
- lib: add keepalive server-side and match OpenSSH behavior more ([@mscdex](https://github.com/mscdex))
- Client: add extra guard to starting keepalive ([@mscdex](https://github.com/mscdex))
- Client: prevent emitting multiple keepalive errors ([@mscdex](https://github.com/mscdex))
- Client: use OpenSSH-style keepalive checking ([@mscdex](https://github.com/mscdex))
- Client: increase default ready timeout ([@mscdex](https://github.com/mscdex))
- Client: fix ready timeout logic ([@mscdex](https://github.com/mscdex))
- Channel: check for unexpected channel requests ([@mscdex](https://github.com/mscdex))
- remove TODO ([@mscdex](https://github.com/mscdex))
- readme: improve hostbased documentation ([@mscdex](https://github.com/mscdex))
- lib: add hostbased user authentication support ([@mscdex](https://github.com/mscdex))
- test: move durability tests to ssh2-streams ([@mscdex](https://github.com/mscdex))
- test: add initial durability tests ([@mscdex](https://github.com/mscdex))
- Server: silence pre-connection event errors ([@mscdex](https://github.com/mscdex))
- Client: reset server version variable ([@mscdex](https://github.com/mscdex))
- Client: fix renamed method ([@mscdex](https://github.com/mscdex))
- Server: fix missing break ([@mscdex](https://github.com/mscdex))
- Server: remove unused parameter ([@mscdex](https://github.com/mscdex))
- readme: update after recent changes ([@mscdex](https://github.com/mscdex))
- Server: improve wording ([@mscdex](https://github.com/mscdex))
- Server: add support for openssh extensions ([@mscdex](https://github.com/mscdex))
- Server: don't bother creating accept on auto-reject ([@mscdex](https://github.com/mscdex))
- Client: adjust wording ([@mscdex](https://github.com/mscdex))
- Client: add methods for openssh extensions ([@mscdex](https://github.com/mscdex))
- Client: move vendor extension methods to end ([@mscdex](https://github.com/mscdex))
- Client: match ssh2-streams changes ([@mscdex](https://github.com/mscdex))
- Server: lint ([@mscdex](https://github.com/mscdex))
- readme: add publickey auth to server example ([@mscdex](https://github.com/mscdex))
- readme: update examples to reflect API change ([@mscdex](https://github.com/mscdex))
- Server: set signature algorithm in PK AuthContext ([@mscdex](https://github.com/mscdex))
- Client: pass ssh2-streams utils on to end user ([@mscdex](https://github.com/mscdex))
- test: check pty allocation for shell() ([@mscdex](https://github.com/mscdex))
- readme: update to reflect recent changes ([@mscdex](https://github.com/mscdex))
- Client: make callback optional for some methods ([@mscdex](https://github.com/mscdex))
- Server: ensure authenticated before channel open ([@mscdex](https://github.com/mscdex))
- Client: support no-more-sessions ([@mscdex](https://github.com/mscdex))
- Client: add strict vendor checking option ([@mscdex](https://github.com/mscdex))
- Server: automatic no-more-sessions handling ([@mscdex](https://github.com/mscdex))
- test: add dsa PK auth test ([@mscdex](https://github.com/mscdex))
- test: add basic successful client/server tests ([@mscdex](https://github.com/mscdex))
- Client: fix typo ([@mscdex](https://github.com/mscdex))
- readme: move agent forwarding to per-channel ([@mscdex](https://github.com/mscdex))
- Server: handle auth-agent-req ([@mscdex](https://github.com/mscdex))
- Client: ensure accurate X11 forwarding count ([@mscdex](https://github.com/mscdex))
- Client: make agent forwarding per-session ([@mscdex](https://github.com/mscdex))
- Server: pass terminal name for pty-req ([@mscdex](https://github.com/mscdex))
- Client: fix missing reply ([@mscdex](https://github.com/mscdex))
- Server: handle env requests ([@mscdex](https://github.com/mscdex))
- Server: fix missing flag setting ([@mscdex](https://github.com/mscdex))
- Server: set current auth method ([@mscdex](https://github.com/mscdex))
- Channel: fix closing behavior on node v0.11+ ([@mscdex](https://github.com/mscdex))
- Channel: always close channel on unexpected request ([@mscdex](https://github.com/mscdex))
- Channel: improve comment ([@mscdex](https://github.com/mscdex))
- Client: return value from upstream ([@mscdex](https://github.com/mscdex))
- test: remove old files ([@mscdex](https://github.com/mscdex))
- Server: merge event handling ([@mscdex](https://github.com/mscdex))
- Server: fix missing end event ([@mscdex](https://github.com/mscdex))
- readme: add server example ([@mscdex](https://github.com/mscdex))
- readme: update Channel documentation ([@mscdex](https://github.com/mscdex))
- Server: set type/subtype correctly for sessions ([@mscdex](https://github.com/mscdex))
- Channel: fix missing server mode flag ([@mscdex](https://github.com/mscdex))
- Server: fix typo ([@mscdex](https://github.com/mscdex))
- Server: AuthContext has no method data parameter ([@mscdex](https://github.com/mscdex))
- Channel: stricter checks ([@mscdex](https://github.com/mscdex))
- Channel: add exit() for server mode ([@mscdex](https://github.com/mscdex))
- Channel: always send close after eof in server mode ([@mscdex](https://github.com/mscdex))
- Channel: auto-remove client close handler ([@mscdex](https://github.com/mscdex))
- readme: clarify SFTPStream usage ([@mscdex](https://github.com/mscdex))
- Channel: stderr is writable server-side ([@mscdex](https://github.com/mscdex))
- Server: don't emit sftp as subsystem ([@mscdex](https://github.com/mscdex))
- Server: allow passing chosen port to tcpip forward accept() ([@mscdex](https://github.com/mscdex))
- readme: fix formatting ([@mscdex](https://github.com/mscdex))
- readme: first go at documentation rewrite ([@mscdex](https://github.com/mscdex))
- Server: pass nothing for channel requests with no extra info ([@mscdex](https://github.com/mscdex))
- Server: return push() value where possible ([@mscdex](https://github.com/mscdex))
- Server: auto-reject unauthenticated global requests ([@mscdex](https://github.com/mscdex))
- Use latest stable `readable-stream` ([@mscdex](https://github.com/mscdex))
- update package.json ([@mscdex](https://github.com/mscdex))
- test: remove irrelevant tests ([@mscdex](https://github.com/mscdex))
- Initial changeover for rewrite ([@mscdex](https://github.com/mscdex))
- Connection: passphrase is only needed once ([@mscdex](https://github.com/mscdex))
- Connection: move setting of socket options ([@mscdex](https://github.com/mscdex))
- Connection: use socket.setKeepAlive() explicitly ([@mscdex](https://github.com/mscdex))
- Connection: allow forced destroy ([@mscdex](https://github.com/mscdex))
- Connection: try 'none' auth after all other methods ([@mscdex](https://github.com/mscdex))
- ChannelStream: emit end/close/finish on socket close ([@mscdex](https://github.com/mscdex))
- ChannelStream: add destroy() alias ([@mscdex](https://github.com/mscdex))
- update TODO ([@mscdex](https://github.com/mscdex))
- readme: add simple dynamic port forward example ([@mscdex](https://github.com/mscdex))
- SFTPv3: use RFC min msg len as max except for OpenSSH ([@mscdex](https://github.com/mscdex))
- SFTPv3: fix missing callbacks ([@mscdex](https://github.com/mscdex))
- readme: remove confusion ([@mscdex](https://github.com/mscdex))
- test: make sure big testfile is removed on error or normal exit ([@mscdex](https://github.com/mscdex))
- test: add test for bad agent key, bad interactive password ([@mscdex](https://github.com/mscdex))
- Connection: fix no auth methods for keyboard-interactive ([@mscdex](https://github.com/mscdex))
- Connection: fix continual agent key list retries ([@mscdex](https://github.com/mscdex))
- test: do async cleanup before normal exit ([@mscdex](https://github.com/mscdex))
- Connection: add 'level' property for handshake timeout error ([@mscdex](https://github.com/mscdex))
- test: use argv[0] for node name ([@mscdex](https://github.com/mscdex))
- test: make test group runner async ([@mscdex](https://github.com/mscdex))
- test: dynamically create large testfile ([@mscdex](https://github.com/mscdex))
- Connection: fix DSA-based agent signatures ([@mscdex](https://github.com/mscdex))
- test: adjust regexp for openssh debug output ([@mscdex](https://github.com/mscdex))
- readme: fix readdir example output ([@mscdex](https://github.com/mscdex))
- bump asn1 dependency version ([@mscdex](https://github.com/mscdex))
- readme: add link to 0.2->0.3 changes ([@mscdex](https://github.com/mscdex))
- test: add rest of sftp integration tests ([@mscdex](https://github.com/mscdex))
- test: improve test files cleanup ([@mscdex](https://github.com/mscdex))
- test: also check atime for fsetstat ([@mscdex](https://github.com/mscdex))
- test: fix test name references ([@mscdex](https://github.com/mscdex))
- test: add some sftp tests ([@mscdex](https://github.com/mscdex))
- SFTPv3: guard end usage in ReadStream ([@mscdex](https://github.com/mscdex))
- SFTPv3: always update file position in streams ([@mscdex](https://github.com/mscdex))
- SFTPv3: truncate decimal when making timestamp ([@mscdex](https://github.com/mscdex))
- SFTPv3: fix copy-paste error ([@mscdex](https://github.com/mscdex))
- SFTPv3: strip out '.' and '..' from readdir list ([@mscdex](https://github.com/mscdex))
- SFTPv3: fix undefined error in readdir ([@mscdex](https://github.com/mscdex))
- test: fix Buffer buffering and stream handling ([@mscdex](https://github.com/mscdex))
- test: disable privilege separation ([@mscdex](https://github.com/mscdex))
- test: check for sshd first ([@mscdex](https://github.com/mscdex))
- readme: update ChannelStream description ([@mscdex](https://github.com/mscdex))
- readme: change style ([@mscdex](https://github.com/mscdex))
- readme: add shell() example ([@mscdex](https://github.com/mscdex))
- readme: simplify examples ([@mscdex](https://github.com/mscdex))
- test: add stderr stream test ([@mscdex](https://github.com/mscdex))
- test: simplify stream buffering ([@mscdex](https://github.com/mscdex))
- Channel: emit close on stderr ([@mscdex](https://github.com/mscdex))
- keyParser: fix empty line check ([@mscdex](https://github.com/mscdex))
- Connection: keyParser errors should be less verbose ([@mscdex](https://github.com/mscdex))
- test: add keyParser tests ([@mscdex](https://github.com/mscdex))
- keyParser: parse RFC4716 keys according to spec ([@mscdex](https://github.com/mscdex))
- keyParser: simplify slice() ([@mscdex](https://github.com/mscdex))
- keyParser: cleanup ([@mscdex](https://github.com/mscdex))
- keyParser: return descriptive errors on bad parse ([@mscdex](https://github.com/mscdex))
- test: add port forwarding tests ([@mscdex](https://github.com/mscdex))
- Connection: fix remote port forward type check ([@mscdex](https://github.com/mscdex))
- test: ensure proper permissions on key files ([@mscdex](https://github.com/mscdex))
- test: fix exec pty test ([@mscdex](https://github.com/mscdex))
- test: add missing test files ([@mscdex](https://github.com/mscdex))
- readme: update stream description ([@mscdex](https://github.com/mscdex))
- test: add stricter pty testing ([@mscdex](https://github.com/mscdex))
- test: add more integration tests ([@mscdex](https://github.com/mscdex))
- test: fix forked integration tests ([@mscdex](https://github.com/mscdex))
- Connection: forward parser errors ([@mscdex](https://github.com/mscdex))
- test: add another integration test ([@mscdex](https://github.com/mscdex))
- test: improve existing integration tests ([@mscdex](https://github.com/mscdex))
- test: prevent next test from running on forked test failure ([@mscdex](https://github.com/mscdex))
- test: use 'temp' instead of 'chroot' ([@mscdex](https://github.com/mscdex))
- Connection: fix style ([@mscdex](https://github.com/mscdex))
- test: improve existing tests ([@mscdex](https://github.com/mscdex))
- test: add start of integration tests ([@mscdex](https://github.com/mscdex))
- Connection: include debug message w