Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
server:terminal [2019/06/08 15:17] – Document the terminal server key bindings digital man | server:terminal [2024/03/04 20:42] (current) – [Configure] Updated SCFG screenshot for SSH digital man | ||
---|---|---|---|
Line 5: | Line 5: | ||
* Supports ANSI X3.64 (color and monochrome), | * Supports ANSI X3.64 (color and monochrome), | ||
- | * Supports [[wp> | + | * Supports [[wp> |
- | * Supported Protocols: [[# | + | * Supported Protocols: [[# |
- | ===== Configuration | + | ===== Configure |
- | * Configured | + | The Synchronet Terminal Server can be configured |
- | | + | |
- | * Configured behavior may be over-ridden via '' | + | <file> |
+ | ╔═══════════════════════════════════════════╗ | ||
+ | ║ Terminal Server | ||
+ | ╠═══════════════════════════════════════════╣ | ||
+ | ║ │Enabled | ||
+ | ║ │Log Level | ||
+ | ║ │Serving Nodes | ||
+ | ║ │SSH Support... | ||
+ | ║ │Telnet Support... | ||
+ | ║ │RLogin Support... | ||
+ | ║ │40 Column PETSCII Support | ||
+ | ║ │80 Column PETSCII Support | ||
+ | ║ │DOS Program Support | ||
+ | ║ │Max Concurrent Connections | ||
+ | ║ │Max Login Inactivity | ||
+ | ║ │Max New User Inactivity | ||
+ | ║ │Max User Inactivity | ||
+ | ║ │Output Buffer Drain Timeout | ||
+ | ║ │Execute Timed Events | ||
+ | ║ │Execute QWK-related Events | ||
+ | ║ │Lookup Client Hostname | ||
+ | ║ │JavaScript Settings... | ||
+ | ║ │Failed Login Attempts... | ||
+ | ╚═══════════════════════════════════════════╝ | ||
+ | </ | ||
+ | |||
+ | ... or configured (on Windows) via [[monitor: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ... or configured by manually editing the '' | ||
===== Key Bindings ===== | ===== Key Bindings ===== | ||
Line 18: | Line 48: | ||
==== Global Ctrl-Keys ==== | ==== Global Ctrl-Keys ==== | ||
- | These control-key combinations | + | These control-key combinations |
^ Ctrl-Key ^ Description ^ | ^ Ctrl-Key ^ Description ^ | ||
Line 29: | Line 59: | ||
| Ctrl-T | | Ctrl-T | ||
+ | Global control-keys are handled in sbbs_t:: | ||
+ | |||
+ | Global control key handling may be disabled/ | ||
+ | js.on_exit(" | ||
+ | console.ctrlkey_passthru|=(1<< | ||
+ | |||
+ | Custom global control-key handlers may be installed via [[util: | ||
+ | |||
+ | < | ||
+ | ╔═══════════════════════════════════════════╗ | ||
+ | ║ | ||
+ | ╠═══════════════════════════════════════════╣ | ||
+ | ║ │Ctrl-P | ||
+ | ║ │Ctrl-U | ||
+ | ║ │ ║ | ||
+ | ╚═══════════════════════════════════════════╝ | ||
+ | </ | ||
==== Line Input ==== | ==== Line Input ==== | ||
Line 43: | Line 90: | ||
| Ctrl-Z | | Ctrl-Z | ||
| Ctrl-R | | Ctrl-R | ||
- | | Ctrl-A | + | | Ctrl-A |
| Ctrl-G | | Ctrl-G | ||
+ | |||
+ | The line/string input control-keys are handled via sbbs_t:: | ||
==== Extended Keys ==== | ==== Extended Keys ==== | ||
- | The Synchronet Terminal Server endeavors to support most extended-keys (e.g. home, end, arrow-keys, etc.) on most terminals while simultaneously supporting | + | The Synchronet Terminal Server endeavors to support most extended-keys (e.g. home, end, arrow-keys, etc.) on most terminals while simultaneously supporting |
- | ^ Extended Key ^ Ctrl-Key ^ ANSI((ANSI X3.64/ | + | ^ Extended Key ^ Decimal ^ Hex ^ Ctrl-Key ^ ANSI((ANSI X3.64/ |
- | | Home | Ctrl-B | + | | Home | 2 | 02 |
- | | End | Ctrl-E | + | | End |
- | | Up-arrow | + | | Up-arrow |
- | | Down-arrow | + | | Down-arrow |
- | | Left-arrow | + | | Left-arrow |
- | | Right-arrow | + | | Right-arrow |
- | | Page-up | + | | Page-up |
- | | Page-down | + | | Page-down |
- | | Insert | + | | Insert |
- | | Delete | + | | Delete |
Line 68: | Line 117: | ||
The Synchronet Terminal Server will negotiate Telnet options with the client (enforcing echo and non-line-at-a-time modes), perform '' | The Synchronet Terminal Server will negotiate Telnet options with the client (enforcing echo and non-line-at-a-time modes), perform '' | ||
+ | |||
+ | ==== Configure ==== | ||
+ | Telnet support in the Synchronet Terminal Server can be configured via [[util: | ||
+ | |||
+ | < | ||
+ | ╔══════════════════════════════════╗ | ||
+ | ║ Telnet Support | ||
+ | ╠══════════════════════════════════╣ | ||
+ | ║ │Enabled | ||
+ | ║ │Interfaces | ||
+ | ║ │Port | ||
+ | ║ │Command Debug | ||
+ | ║ │Send Go-Aheads | ||
+ | ╚══════════════════════════════════╝ | ||
+ | </ | ||
+ | |||
+ | ==== Options ==== | ||
+ | |||
+ | Telnet options are negotiated between the client and server, normally without any indication to the user. | ||
+ | |||
+ | If no Telnet options are received by the Terminal Server during an initial client session on the configured Telnet port, the Terminal Server will revert the client to just "Raw TCP" protocol. | ||
+ | |||
+ | Telnet options can be re-negotiated at any time during a Telnet session, but most options are only negotiated during the initial connection. | ||
+ | |||
+ | ^ Options | ||
+ | | ECHO | WILL | Server will provide the echo of input keys, so request the the terminal does not echo (RFC-[[rfc> | ||
+ | | SUP_GA | ||
+ | | TERM_TYPE | ||
+ | | TERM_SPEED | ||
+ | | SEND_LOCATION | DO | Server would like the client to provide the user's location, if available (RFC-[[rfc> | ||
+ | | NEGOTIATE_WINDOW_SIZE | DO | Server would like the client to provide the terminal dimensions (cols x rows), if available (RFC-[[rfc> | ||
+ | | NEW_ENVIRON | ||
+ | |||
+ | The BINARY_TX option (disabling special treatment of CR/LF and CR/NUL) is dynamically negotiated as needed, for file transfers. | ||
+ | |||
+ | === Debugging === | ||
+ | |||
+ | The Terminal server logs all Telnet option negotiations using a // | ||
+ | |||
+ | < | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | 6/20 05: | ||
+ | </ | ||
+ | |||
===== SSH ===== | ===== SSH ===== | ||
Line 74: | Line 186: | ||
SSHv2 support provided by [[dev: | SSHv2 support provided by [[dev: | ||
+ | ==== Configure ==== | ||
+ | |||
+ | SSH support in the Synchronet Terminal Server can be configured via [[util: | ||
+ | < | ||
+ | ╔══════════════════════════════════════════════════════╗ | ||
+ | ║ SSH Support | ||
+ | ╠══════════════════════════════════════════════════════╣ | ||
+ | ║ │Enabled | ||
+ | ║ │Interfaces | ||
+ | ║ │Port | ||
+ | ║ │Connect Timeout | ||
+ | ║ │Error Level | ||
+ | ║ │User Authentication Type Valid Key or Username ║ | ||
+ | ║ │File Transfer (SFTP) Support | ||
+ | ║ │Max SFTP Inactivity | ||
+ | ╚══════════════════════════════════════════════════════╝ | ||
+ | </ | ||
+ | |||
+ | ==== cryptlib.key ==== | ||
+ | |||
+ | The SSH private key is stored in the file '' | ||
+ | |||
+ | The following Terminal Server log message indicates a problem decrypting the '' | ||
+ | ' | ||
===== RLogin ===== | ===== RLogin ===== | ||
- | [[ftp://ftp.rfc-editor.org/ | + | BSD Rlogin (RFC-[[rfc>1282]]) clients are supported, by default, on the standard RLogin TCP port: 513. |
+ | |||
+ | ==== Configure ==== | ||
+ | RLogin support in the Synchronet Terminal Server can be configured via [[util: | ||
+ | |||
+ | < | ||
+ | ╔══════════════════════════════════╗ | ||
+ | ║ RLogin Support | ||
+ | ╠══════════════════════════════════╣ | ||
+ | ║ │Enabled | ||
+ | ║ │Interfaces | ||
+ | ║ │Port | ||
+ | ╚══════════════════════════════════╝ | ||
+ | </ | ||
+ | |||
+ | ==== History | ||
- | ==== History of Synchronet' | + | Synchronet' |
=== SBBS v3.00c 2000 === | === SBBS v3.00c 2000 === | ||
Line 126: | Line 277: | ||
* [[person: | * [[person: | ||
- | * [[person: | + | * [[person: |
===== JavaScript ===== | ===== JavaScript ===== | ||
Line 135: | Line 286: | ||
* [[http:// | * [[http:// | ||
- | ===== Source Code ===== | ||
- | |||
- | The Synchronet Terminal Server source code makes up the majority of the C (and all of the C++) files found in '' | ||
====== See Also ====== | ====== See Also ====== |