Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jedi4ever/test-sshd.js
launches an sshd server to test against that will echo commands back
https://github.com/jedi4ever/test-sshd.js
Last synced: about 1 month ago
JSON representation
launches an sshd server to test against that will echo commands back
- Host: GitHub
- URL: https://github.com/jedi4ever/test-sshd.js
- Owner: jedi4ever
- License: mit
- Created: 2013-08-13T17:51:50.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2013-08-15T11:28:53.000Z (over 11 years ago)
- Last Synced: 2024-11-09T11:41:39.389Z (about 2 months ago)
- Language: JavaScript
- Size: 227 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: License
Awesome Lists containing this project
README
# Description
**Test-sshd**(nodejs) allows you to start a local sshd daemon that you can test against.> Because there is nothing like the real thing
Way too many code that uses ssh/sftp isn't tested because mocking and stubbing sshd servers is hard.
# How
It starts a sshd with the correct arguments so that:- you can login as the current user (process.env.user)
- using the test key provided (in config/keys/id_rsa)
- on a port you specify
- (mode: echo ) if login succeeds it uses `ForceCommand` to echo the command in `$SSH_ORIGINAL_COMMAND`
- (mode: exec ) if login succeeds it uses executes the command
- (mode: transfer ) if login succeeds it allows for sftp
- it does NOT do password authentication (yet)# Usage
var TestSshd = require('test-sshd');
var sshd = TestSshd({port: 4000};var connectParams = sshd.connectParams();
sshd.on('ready', function() {
// When login is working
console.log('ready to login');
});sshd.on('error', function(error) {
// When sshd has an error
});sshd.on('stdout', function(data) {
// receive sshd stdout
});sshd.on('stderr', function(data) {
// receive sshd stderr
});sshd.on('exit', function() {
// when daemon exit
});sshd.start();
// Make sure to stop the sshd stop when the process exits
// This prevents orphaned processes
process.on('exit', function() {
if(sshd.status === 'started') {
sshd.stop();
}
});# Code information
## Getters
- `status`: either 'started' or 'stopped'
- `settings`: contains params used to initialize the sshd## Options
- `port`: **integer** defdults to 4000
- `mode`: **string** default to `echo` (other options are `exec`, `transfer`)## Events
- `ready`: when the sshd is succesfully listening
- `exit`: when the sshd exits
- `error`: when an error occurs## ConnectParams()
This is a hash with;- `host` : **string** host to connect to
- `username`: **string** username to connect with
- `port`: **integer** port it listens on
- `privateKey`: **string** key that can be used to connect# License
MIT