Merge branch 'master' of github.com:NuSkooler/enigma-bbs into 216-waiting-for-caller
This commit is contained in:
commit
9db60c65f5
|
@ -56,11 +56,10 @@ function ClientTerminal(output) {
|
||||||
set: function (ttype) {
|
set: function (ttype) {
|
||||||
termType = ttype.toLowerCase();
|
termType = ttype.toLowerCase();
|
||||||
|
|
||||||
if (this.isANSI()) {
|
if (this.isNixTerm()) {
|
||||||
this.outputEncoding = 'cp437';
|
|
||||||
} else {
|
|
||||||
// :TODO: See how x84 does this -- only set if local/remote are binary
|
|
||||||
this.outputEncoding = 'utf8';
|
this.outputEncoding = 'utf8';
|
||||||
|
} else {
|
||||||
|
this.outputEncoding = 'cp437';
|
||||||
}
|
}
|
||||||
|
|
||||||
// :TODO: according to this: http://mud-dev.wikidot.com/article:telnet-client-identification
|
// :TODO: according to this: http://mud-dev.wikidot.com/article:telnet-client-identification
|
||||||
|
|
|
@ -11,15 +11,19 @@ Entries available under `config.loginServers.ssh`:
|
||||||
| Item | Required | Description |
|
| Item | Required | Description |
|
||||||
|------|----------|-------------|
|
|------|----------|-------------|
|
||||||
| `privateKeyPem` | :-1: | Path to private key file. If not set, defaults to `./config/ssh_private_key.pem` |
|
| `privateKeyPem` | :-1: | Path to private key file. If not set, defaults to `./config/ssh_private_key.pem` |
|
||||||
| `privateKeyPass` | :+1: | Password to private key file.
|
| `privateKeyPass` | :+1: | Password to private key file. *
|
||||||
| `firstMenu` | :-1: | First menu an SSH connected user is presented with. Defaults to `sshConnected`. |
|
| `firstMenu` | :-1: | First menu an SSH connected user is presented with. Defaults to `sshConnected`. |
|
||||||
| `firstMenuNewUser` | :-1: | Menu presented to user when logging in with one of the usernames found within `users.newUserNames` in your `config.hjson`. Examples include `new` and `apply`. |
|
| `firstMenuNewUser` | :-1: | Menu presented to user when logging in with one of the usernames found within `users.newUserNames` in your `config.hjson`. Examples include `new` and `apply`.|
|
||||||
| `enabled` | :+1: | Set to `true` to enable the SSH server. |
|
| `enabled` | :+1: | Set to `true` to enable the SSH server. |
|
||||||
| `port` | :-1: | Override the default port of `8443`. |
|
| `port` | :-1: | Override the default port of `8443`. |
|
||||||
| `address` | :-1: | Sets an explicit bind address. |
|
| `address` | :-1: | Sets an explicit bind address. |
|
||||||
| `algorithms` | :-1: | Configuration block for SSH algorithms. Includes keys of `kex`, `cipher`, `hmac`, and `compress`. See the algorithms section in the [ssh2-streams](https://github.com/mscdex/ssh2-streams#ssh2stream-methods) documentation for details. For defaults set by ENiGMA½, see `core/config_default.js`.
|
| `algorithms` | :-1: | Configuration block for SSH algorithms. Includes keys of `kex`, `cipher`, `hmac`, and `compress`. See the algorithms section in the [ssh2-streams](https://github.com/mscdex/ssh2-streams#ssh2stream-methods) documentation for details. For defaults set by ENiGMA½, see `core/config_default.js`.
|
||||||
| `traceConnections` | :-1: | Set to `true` to enable full trace-level information on SSH connections.
|
| `traceConnections` | :-1: | Set to `true` to enable full trace-level information on SSH connections.
|
||||||
|
|
||||||
|
|
||||||
|
* *IMPORTANT* With the `privateKeyPass` option set, make sure that you verify that the config file is not readable by other users!
|
||||||
|
|
||||||
|
|
||||||
### Example Configuration
|
### Example Configuration
|
||||||
|
|
||||||
```hjson
|
```hjson
|
||||||
|
@ -36,17 +40,43 @@ Entries available under `config.loginServers.ssh`:
|
||||||
```
|
```
|
||||||
|
|
||||||
## Generate a SSH Private Key
|
## Generate a SSH Private Key
|
||||||
To utilize the SSH server, an SSH Private Key (PK) will need generated. OpenSSL can be used for this task:
|
To utilize the SSH server, an SSH Private Key (PK) will need generated. OpenSSH or (with some versions) OpenSSL can be used for this task:
|
||||||
|
|
||||||
|
### OpenSSH
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh-keygen -m PEM -h -f config/ssh_private_key.pem
|
||||||
|
```
|
||||||
|
|
||||||
|
Option descriptions:
|
||||||
|
|
||||||
|
| Option | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `-m PEM` | Set the output format to `PEM`, compatible with the `ssh2` library |
|
||||||
|
| `-h` | Generate a host key |
|
||||||
|
| `-f config/ssh_private_key.pem` | Filename for the private key. Used in the `privateKeyPem` option in the configuration |
|
||||||
|
|
||||||
|
When you execute the `ssh-keygen` command it will ask for a passphrase (and a confirmation.) This should then be used as the value for `privateKeyPass` in the configuration.
|
||||||
|
|
||||||
|
|
||||||
|
### OpenSSL
|
||||||
|
|
||||||
|
If you do not have OpenSSH installed or if you have trouble with the above OpenSSH commands, using some versions for OpenSSL (before version 3) the following commands may work as well:
|
||||||
|
|
||||||
|
|
||||||
### Modern OpenSSL
|
|
||||||
```bash
|
```bash
|
||||||
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 | openssl rsa -out ./config/ssh_private_key.pem -aes128
|
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 | openssl rsa -out ./config/ssh_private_key.pem -aes128
|
||||||
```
|
```
|
||||||
|
|
||||||
### Legacy OpenSSL
|
Or for even older OpenSSL versions:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
openssl genrsa -aes128 -out ./config/ssh_private_key.pem 2048
|
openssl genrsa -aes128 -out ./config/ssh_private_key.pem 2048
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that you may need `-3des` for every old implementations or SSH clients!
|
Note that you may need `-3des` for very old implementations or SSH clients!
|
||||||
|
|
||||||
|
|
||||||
|
## Prompt
|
||||||
|
|
||||||
|
The keyboard interactive prompt can be customized using a `SSHPMPT.ASC` art file. See [art](../../art/general.md) for more information on configuring. This prompt includes a `newUserNames` variable to show the list of allowed new user names (see `firstMenuNewUser` above.) See [mci](../../art/mci.md) for information about formatting this string. Note: Regardless of the content of the `SSHPMPT.ASC` file, the prompt is surrounded by "Access denied", a newline, the prompt, another newline, and then the string "\[username]'s password: ". This normally occurs after the first password prompt (no art is shown before the first password attempt is made.)
|
||||||
|
|
Loading…
Reference in New Issue