chore: update docs
This commit is contained in:
parent
3ecda672ba
commit
25f52b3f1e
3 changed files with 143 additions and 86 deletions
181
README.md
181
README.md
|
@ -1,4 +1,7 @@
|
|||
# WebSSH2
|
||||
# WebSSH2 - BIG-IP SERVER ONLY EDITION
|
||||
|
||||
# This branch `bigip-server` is a work in progress and you shouldn't use it
|
||||
|
||||
[](https://badge.fury.io/gh/billchurch%2Fwebssh2)
|
||||
|
||||
[](https://www.buymeacoffee.com/billchurch)
|
||||
|
@ -10,6 +13,7 @@ A bare bones example of an HTML5 web-based terminal emulator and SSH client. We
|
|||
<img width="600" height="340" alt="WebSSH2 v0.2.0 demo" src="https://github.com/billchurch/WebSSH2/raw/master/screenshots/demo-800.gif">
|
||||
|
||||
# Requirements
|
||||
|
||||
Node v6.x or above. If using <v6.x you should be able to run by replacing the "read-config" package to @1 like this (after a clone):
|
||||
|
||||
`npm install --save read-config@1
|
||||
|
@ -18,6 +22,7 @@ Node v6.x or above. If using <v6.x you should be able to run by replacing the "r
|
|||
Just keep in mind that there is no intention to ensure compatability with Node < v6.x
|
||||
|
||||
# Instructions
|
||||
|
||||
To install:
|
||||
|
||||
1. Clone to a location somewhere and then `cd app` and `npm install --production`. If you want to develop and rebuild javascript and other files utilize `npm install` instead.
|
||||
|
@ -27,7 +32,7 @@ To install:
|
|||
3. Run `npm start`
|
||||
|
||||
4. Fire up a browser, navigate to IP/port of your choice and specify a host (https isn't used here because it's assumed it will be off-loaded to
|
||||
some sort of proxy):
|
||||
some sort of proxy):
|
||||
|
||||
http://localhost:2222/ssh/host/127.0.0.1
|
||||
|
||||
|
@ -57,78 +62,79 @@ docker run --name webssh2 -d -p 2222:2222 webssh2
|
|||
|
||||
## GET request vars
|
||||
|
||||
* **port=** - _integer_ - port of SSH server (defaults to 22)
|
||||
- **port=** - _integer_ - port of SSH server (defaults to 22)
|
||||
|
||||
* **header=** - _string_ - optional header to display on page
|
||||
- **header=** - _string_ - optional header to display on page
|
||||
|
||||
* **headerBackground=** - _string_ - optional background color of header to display on page
|
||||
- **headerBackground=** - _string_ - optional background color of header to display on page
|
||||
|
||||
* **readyTimeout=** - _integer_ - How long (in milliseconds) to wait for the SSH handshake to complete. **Default:** 20000. **Enforced Values:** Min: 1, Max: 300000
|
||||
- **readyTimeout=** - _integer_ - How long (in milliseconds) to wait for the SSH handshake to complete. **Default:** 20000. **Enforced Values:** Min: 1, Max: 300000
|
||||
|
||||
* **cursorBlink** - _boolean_ - Cursor blinks (true), does not (false) **Default:** true.
|
||||
- **cursorBlink** - _boolean_ - Cursor blinks (true), does not (false) **Default:** true.
|
||||
|
||||
* **scrollback** - _integer_ - Lines in the scrollback buffer. **Default:** 10000. **Enforced Values:** Min: 1, Max: 200000
|
||||
- **scrollback** - _integer_ - Lines in the scrollback buffer. **Default:** 10000. **Enforced Values:** Min: 1, Max: 200000
|
||||
|
||||
* **tabStopWidth** - _integer_ - Tab stops at _n_ characters **Default:** 8. **Enforced Values:** Min: 1, Max: 100
|
||||
- **tabStopWidth** - _integer_ - Tab stops at _n_ characters **Default:** 8. **Enforced Values:** Min: 1, Max: 100
|
||||
|
||||
* **bellStyle** - _string_ - Style of terminal bell: ("sound"|"none"). **Default:** "sound". **Enforced Values:** "sound", "none"
|
||||
- **bellStyle** - _string_ - Style of terminal bell: ("sound"|"none"). **Default:** "sound". **Enforced Values:** "sound", "none"
|
||||
|
||||
## Headers
|
||||
|
||||
* **allowreplay** - _boolean_ - Allow use of password replay feature, example `allowreplay: true`
|
||||
- **allowreplay** - _boolean_ - Allow use of password replay feature, example `allowreplay: true`
|
||||
|
||||
* **mrhsession** - _string_ - Can be used to pass APM session for event correlation `mrhsession: abc123`
|
||||
- **mrhsession** - _string_ - Can be used to pass APM session for event correlation `mrhsession: abc123`
|
||||
|
||||
## Config File Options
|
||||
|
||||
`config.json` contains several options which may be specified to customize to your needs, vs editing the javascript directly. This is JSON format so mind your spacing, brackets, etc...
|
||||
|
||||
* **listen.ip** - _string_ - IP address node should listen on for client connections, defaults to `127.0.0.1`
|
||||
- **listen.ip** - _string_ - IP address node should listen on for client connections, defaults to `127.0.0.1`
|
||||
|
||||
* **listen.port** - _integer_ - Port node should listen on for client connections, defaults to `2222`
|
||||
- **listen.port** - _integer_ - Port node should listen on for client connections, defaults to `2222`
|
||||
|
||||
* **http.origins** - _array_ - COORS origins to allow connections from to socket.io server, defaults to `localhost:2222`. Changed in 0.3.1, to enable previous, less secure, default behavior of everything use `*:*` (not recommended). Check [#240](../../issues/240)
|
||||
- **http.origins** - _array_ - COORS origins to allow connections from to socket.io server, defaults to `localhost:2222`. Changed in 0.3.1, to enable previous, less secure, default behavior of everything use `*:*` (not recommended). Check [#240](../../issues/240)
|
||||
|
||||
* **user.name** - _string_ - Specify user name to authenticate with. In normal cases this should be left to the default `null` setting.
|
||||
- **user.name** - _string_ - Specify user name to authenticate with. In normal cases this should be left to the default `null` setting.
|
||||
|
||||
* **user.password** - _string_ - Specify password to authenticate with. In normal cases this should be left to the default `null` setting.
|
||||
- **user.password** - _string_ - Specify password to authenticate with. In normal cases this should be left to the default `null` setting.
|
||||
|
||||
* **ssh.host** - _string_ - Specify host to connect to. May be either hostname or IP address. Defaults to `null`.
|
||||
- **ssh.host** - _string_ - Specify host to connect to. May be either hostname or IP address. Defaults to `null`.
|
||||
|
||||
* **ssh.port** - _integer_ - Specify SSH port to connect to, defaults to `22`
|
||||
- **ssh.port** - _integer_ - Specify SSH port to connect to, defaults to `22`
|
||||
|
||||
* **ssh.term** - _string_ - Specify terminal emulation to use, defaults to `xterm-color`
|
||||
- **ssh.term** - _string_ - Specify terminal emulation to use, defaults to `xterm-color`
|
||||
|
||||
* **ssh.readyTimeout** - _integer_ - How long (in milliseconds) to wait for the SSH handshake to complete. **Default:** 20000.
|
||||
- **ssh.readyTimeout** - _integer_ - How long (in milliseconds) to wait for the SSH handshake to complete. **Default:** 20000.
|
||||
|
||||
* **ssh.keepaliveInterval** - _integer_ - How often (in milliseconds) to send SSH-level keepalive packets to the server (in a similar way as OpenSSH's ServerAliveInterval config option). Set to 0 to disable. **Default:** 120000.
|
||||
- **ssh.keepaliveInterval** - _integer_ - How often (in milliseconds) to send SSH-level keepalive packets to the server (in a similar way as OpenSSH's ServerAliveInterval config option). Set to 0 to disable. **Default:** 120000.
|
||||
|
||||
* **ssh.keepaliveCountMax** - _integer_ - How many consecutive, unanswered SSH-level keepalive packets that can be sent to the server before disconnection (similar to OpenSSH's ServerAliveCountMax config option). **Default:** 10.
|
||||
- **ssh.keepaliveCountMax** - _integer_ - How many consecutive, unanswered SSH-level keepalive packets that can be sent to the server before disconnection (similar to OpenSSH's ServerAliveCountMax config option). **Default:** 10.
|
||||
|
||||
* **terminal.cursorBlink** - _boolean_ - Cursor blinks (true), does not (false) **Default:** true.
|
||||
- **terminal.cursorBlink** - _boolean_ - Cursor blinks (true), does not (false) **Default:** true.
|
||||
|
||||
* **terminal.scrollback** - _integer_ - Lines in the scrollback buffer. **Default:** 10000.
|
||||
- **terminal.scrollback** - _integer_ - Lines in the scrollback buffer. **Default:** 10000.
|
||||
|
||||
* **terminal.tabStopWidth** - _integer_ - Tab stops at _n_ characters **Default:** 8.
|
||||
- **terminal.tabStopWidth** - _integer_ - Tab stops at _n_ characters **Default:** 8.
|
||||
|
||||
* **terminal.bellStyle** - _string_ - Style of terminal bell: (sound|none). **Default:** "sound".
|
||||
- **terminal.bellStyle** - _string_ - Style of terminal bell: (sound|none). **Default:** "sound".
|
||||
|
||||
* **header.text** - _string_ - Specify header text, defaults to `My Header` but may also be set to `null`. When set to `null` no header bar will be displayed on the client.
|
||||
- **header.text** - _string_ - Specify header text, defaults to `My Header` but may also be set to `null`. When set to `null` no header bar will be displayed on the client.
|
||||
|
||||
* **header.background** - _string_ - Header background, defaults to `green`.
|
||||
- **header.background** - _string_ - Header background, defaults to `green`.
|
||||
|
||||
* **session.name** - _string_ - Name of session ID cookie. it's not a horrible idea to make this something unique.
|
||||
- **session.name** - _string_ - Name of session ID cookie. it's not a horrible idea to make this something unique.
|
||||
|
||||
* **session.secret** - _string_ - Secret key for cookie encryption. You should change this in production.
|
||||
- **session.secret** - _string_ - Secret key for cookie encryption. You should change this in production.
|
||||
|
||||
* **options.challengeButton** - _boolean_ - Challenge button. This option, which is still under development, allows the user to resend the password to the server (in cases of step-up authentication for things like `sudo` or a router `enable` command.
|
||||
- **options.challengeButton** - _boolean_ - Challenge button. This option, which is still under development, allows the user to resend the password to the server (in cases of step-up authentication for things like `sudo` or a router `enable` command.
|
||||
|
||||
* **options.allowreauth** - _boolean_ - Reauth button. This option creates an option to provide a button to create a new session with new credentials. See [issue 51](../../issues/51) and [pull 85](../../pull/85) for more detail.
|
||||
- **options.allowreauth** - _boolean_ - Reauth button. This option creates an option to provide a button to create a new session with new credentials. See [issue 51](../../issues/51) and [pull 85](../../pull/85) for more detail.
|
||||
|
||||
* **algorithms** - _object_ - This option allows you to explicitly override the default transport layer algorithms used for the connection. Each value must be an array of valid algorithms for that category. The order of the algorithms in the arrays are important, with the most favorable being first. Valid keys:
|
||||
- **algorithms** - _object_ - This option allows you to explicitly override the default transport layer algorithms used for the connection. Each value must be an array of valid algorithms for that category. The order of the algorithms in the arrays are important, with the most favorable being first. Valid keys:
|
||||
|
||||
* **kex** - _array_ - Key exchange algorithms.
|
||||
- **kex** - _array_ - Key exchange algorithms.
|
||||
|
||||
* Default values:
|
||||
- Default values:
|
||||
|
||||
1. ecdh-sha2-nistp256
|
||||
2. ecdh-sha2-nistp384
|
||||
|
@ -136,19 +142,19 @@ docker run --name webssh2 -d -p 2222:2222 webssh2
|
|||
4. diffie-hellman-group-exchange-sha256
|
||||
5. diffie-hellman-group14-sha1
|
||||
|
||||
* Supported values:
|
||||
- Supported values:
|
||||
|
||||
* ecdh-sha2-nistp256
|
||||
* ecdh-sha2-nistp384
|
||||
* ecdh-sha2-nistp521
|
||||
* diffie-hellman-group-exchange-sha256
|
||||
* diffie-hellman-group14-sha1
|
||||
* diffie-hellman-group-exchange-sha1
|
||||
* diffie-hellman-group1-sha1
|
||||
- ecdh-sha2-nistp256
|
||||
- ecdh-sha2-nistp384
|
||||
- ecdh-sha2-nistp521
|
||||
- diffie-hellman-group-exchange-sha256
|
||||
- diffie-hellman-group14-sha1
|
||||
- diffie-hellman-group-exchange-sha1
|
||||
- diffie-hellman-group1-sha1
|
||||
|
||||
* **cipher** - _array_ - Ciphers.
|
||||
- **cipher** - _array_ - Ciphers.
|
||||
|
||||
* Default values:
|
||||
- Default values:
|
||||
|
||||
1. aes128-ctr
|
||||
2. aes192-ctr
|
||||
|
@ -159,67 +165,69 @@ docker run --name webssh2 -d -p 2222:2222 webssh2
|
|||
7. aes256-gcm@openssh.com
|
||||
8. aes256-cbc **legacy cipher for backward compatibility, should removed :+1:**
|
||||
|
||||
* Supported values:
|
||||
- Supported values:
|
||||
|
||||
* aes128-ctr
|
||||
* aes192-ctr
|
||||
* aes256-ctr
|
||||
* aes128-gcm
|
||||
* aes128-gcm@openssh.com
|
||||
* aes256-gcm
|
||||
* aes256-gcm@openssh.com
|
||||
* aes256-cbc
|
||||
* aes192-cbc
|
||||
* aes128-cbc
|
||||
* blowfish-cbc
|
||||
* 3des-cbc
|
||||
* arcfour256
|
||||
* arcfour128
|
||||
* cast128-cbc
|
||||
* arcfour
|
||||
- aes128-ctr
|
||||
- aes192-ctr
|
||||
- aes256-ctr
|
||||
- aes128-gcm
|
||||
- aes128-gcm@openssh.com
|
||||
- aes256-gcm
|
||||
- aes256-gcm@openssh.com
|
||||
- aes256-cbc
|
||||
- aes192-cbc
|
||||
- aes128-cbc
|
||||
- blowfish-cbc
|
||||
- 3des-cbc
|
||||
- arcfour256
|
||||
- arcfour128
|
||||
- cast128-cbc
|
||||
- arcfour
|
||||
|
||||
* **hmac** - _array_ - (H)MAC algorithms.
|
||||
- **hmac** - _array_ - (H)MAC algorithms.
|
||||
|
||||
* Default values:
|
||||
- Default values:
|
||||
|
||||
1. hmac-sha2-256
|
||||
2. hmac-sha2-512
|
||||
3. hmac-sha1 **legacy hmac for backward compatibility, should removed :+1:**
|
||||
|
||||
* Supported values:
|
||||
- Supported values:
|
||||
|
||||
* hmac-sha2-256
|
||||
* hmac-sha2-512
|
||||
* hmac-sha1
|
||||
* hmac-md5
|
||||
* hmac-sha2-256-96
|
||||
* hmac-sha2-512-96
|
||||
* hmac-ripemd160
|
||||
* hmac-sha1-96
|
||||
* hmac-md5-96
|
||||
- hmac-sha2-256
|
||||
- hmac-sha2-512
|
||||
- hmac-sha1
|
||||
- hmac-md5
|
||||
- hmac-sha2-256-96
|
||||
- hmac-sha2-512-96
|
||||
- hmac-ripemd160
|
||||
- hmac-sha1-96
|
||||
- hmac-md5-96
|
||||
|
||||
* **compress** - _array_ - Compression algorithms.
|
||||
- **compress** - _array_ - Compression algorithms.
|
||||
|
||||
* Default values:
|
||||
- Default values:
|
||||
|
||||
1. none
|
||||
2. zlib@openssh.com
|
||||
3. zlib
|
||||
|
||||
* Supported values:
|
||||
- Supported values:
|
||||
|
||||
* none
|
||||
* zlib@openssh.com
|
||||
* zlib
|
||||
- none
|
||||
- zlib@openssh.com
|
||||
- zlib
|
||||
|
||||
* **serverlog.client** - _boolean_ - Enables client command logging on server log (console.log). Very simple at this point, buffers data from client until it receives a line-feed then dumps buffer to console.log with session information for tracking. Will capture anything send from client, including passwords, so use for testing only... Default: false. Example:
|
||||
* _serverlog.client: GcZDThwA4UahDiKO2gkMYd7YPIfVAEFW/mnf0NUugLMFRHhsWAAAA host: 192.168.99.80 command: ls -lat_
|
||||
- **serverlog.client** - _boolean_ - Enables client command logging on server log (console.log). Very simple at this point, buffers data from client until it receives a line-feed then dumps buffer to console.log with session information for tracking. Will capture anything send from client, including passwords, so use for testing only... Default: false. Example:
|
||||
|
||||
* **serverlog.server** - _boolean_ - not implemented, default: false.
|
||||
- _serverlog.client: GcZDThwA4UahDiKO2gkMYd7YPIfVAEFW/mnf0NUugLMFRHhsWAAAA host: 192.168.99.80 command: ls -lat_
|
||||
|
||||
* **accesslog** - _boolean_ - http style access logging to console.log, default: false
|
||||
- **serverlog.server** - _boolean_ - not implemented, default: false.
|
||||
|
||||
- **accesslog** - _boolean_ - http style access logging to console.log, default: false
|
||||
|
||||
# Experimental client-side logging
|
||||
|
||||
Clicking `Start logging` on the status bar will log all data to the client. A `Download log` option will appear after starting the logging. You may download at any time to the client. You may stop logging at any time my pressing the `Logging - STOP LOG`. Note that clicking the `Start logging` option again will cause the current log to be overwritten, so be sure to download first.
|
||||
|
||||
# Example:
|
||||
|
@ -227,4 +235,5 @@ Clicking `Start logging` on the status bar will log all data to the client. A `D
|
|||
http://localhost:2222/ssh/host/192.168.1.1?port=2244&header=My%20Header&headerBackground=red
|
||||
|
||||
# Tips
|
||||
* If you want to add custom JavaScript to the browser client you can either modify `./src/client.html` and add a **<script>** element, modify `./src/index.js` directly, or check out `webpack.*.js` and add your custom javascript file to a task there (best option).
|
||||
|
||||
- If you want to add custom JavaScript to the browser client you can either modify `./src/client.html` and add a **<script>** element, modify `./src/index.js` directly, or check out `webpack.*.js` and add your custom javascript file to a task there (best option).
|
||||
|
|
38
test1/app1.js
Normal file
38
test1/app1.js
Normal file
|
@ -0,0 +1,38 @@
|
|||
var express = require("express");
|
||||
var app = express();
|
||||
var server = require("http").createServer(app);
|
||||
var io = require("socket.io")(server, {
|
||||
path: "/ssh/socket.io",
|
||||
cors: {
|
||||
origin: "http://localhost:8080",
|
||||
methods: ["GET", "POST"],
|
||||
credentials: true,
|
||||
},
|
||||
});
|
||||
|
||||
var PORT = 3000;
|
||||
|
||||
io.on("connection", function (socket) {
|
||||
console.log("A client connected");
|
||||
|
||||
socket.on("authenticate", function (credentials) {
|
||||
console.log("Received credentials:", credentials);
|
||||
|
||||
// Here you would typically validate the credentials
|
||||
// For this example, we'll just echo back a success message
|
||||
var authResult = {
|
||||
success: true,
|
||||
message: "Authentication successful",
|
||||
};
|
||||
|
||||
socket.emit("auth_result", authResult);
|
||||
});
|
||||
|
||||
socket.on("disconnect", function () {
|
||||
console.log("A client disconnected");
|
||||
});
|
||||
});
|
||||
|
||||
server.listen(PORT, function () {
|
||||
console.log("Server running on port " + PORT);
|
||||
});
|
10
test1/package.json
Normal file
10
test1/package.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"name": "socket-test-server",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "app1.js",
|
||||
"dependencies": {
|
||||
"express": "4.16.2",
|
||||
"socket.io": "2.2.0"
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue