Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
server:terminal [2019/06/20 17:58] – [Telnet] Document Telnet Options digital manserver: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), PETSCII, [[wp>Remote_imaging_protocol|RIP]], and dumb terminals   * Supports ANSI X3.64 (color and monochrome), PETSCII, [[wp>Remote_imaging_protocol|RIP]], and dumb terminals
-  * Supports [[wp>ASCII|US-ASCII]], [[wp>Code_page_437|CP437]] (a.k.a. IBM Extended ASCII) and CBM/[[wp>PETSCII]] character sets  +  * Supports [[wp>ASCII|US-ASCII]], [[wp>Code_page_437|CP437]] (a.k.a. IBM Extended ASCII), UTF-8 (UNICODE), and CBM/[[wp>PETSCII]] character sets  
-  * Supported Protocols: [[#Telnet]], [[#RLogin]], and [[#SSH]]+  * Supported Protocols: [[#Telnet]], [[#RLogin]], [[#SSH]], and raw TCP
  
-===== Configuration =====+===== Configure =====
  
-  * Configured via the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file +The Synchronet Terminal Server can be configured via [[util:SCFG]]:Servers->Terminal Server: 
-  * Optionally configured (on Windows) via [[monitor:SBBSCTRL]]:Telnet->Configure dialog + 
-  * Configured behavior may be over-ridden via ''[[monitor:sbbscon|sbbs]]'' command-line arguments+<file> 
 +╔═══════════════════════════════════════════╗ 
 +║              Terminal Server              ║ 
 +╠═══════════════════════════════════════════╣ 
 +║ │Enabled                       Yes        ║ 
 +║ │Log Level                     Info       ║ 
 +║ │Serving Nodes                 1-4        ║ 
 +║ │SSH Support...                Port 22    ║ 
 +║ │Telnet Support...             Port 23    ║ 
 +║ │RLogin Support...             Port 513   ║ 
 +║ │40 Column PETSCII Support     Port 64    ║ 
 +║ │80 Column PETSCII Support     Port 128   ║ 
 +║ │DOS Program Support           Yes        ║ 
 +║ │Max Concurrent Connections    Unlimited  ║ 
 +║ │Max Login Inactivity          10 minutes ║ 
 +║ │Max New User Inactivity       1 hour     ║ 
 +║ │Max User Inactivity           10 minutes ║ 
 +║ │Output Buffer Drain Timeout   10 ms      ║ 
 +║ │Execute Timed Events          Yes        ║ 
 +║ │Execute QWK-related Events    Yes        ║ 
 +║ │Lookup Client Hostname        Yes        ║ 
 +║ │JavaScript Settings...                   ║ 
 +║ │Failed Login Attempts...                 ║ 
 +╚═══════════════════════════════════════════╝ 
 +</file> 
 + 
 +... or configured (on Windows) via [[monitor:SBBSCTRL]]:Telnet->Configure dialog 
 + 
 +{{:server:sbbsctrl.3.20.term.config.png}} 
 + 
 +... or configured by manually editing the ''[BBS]'' section of the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file
  
 ===== Key Bindings ===== ===== Key Bindings =====
Line 69: Line 99:
 The Synchronet Terminal Server endeavors to support most extended-keys (e.g. home, end, arrow-keys, etc.) on most terminals while simultaneously supporting control-key equivalents for all terminals. The Synchronet Terminal Server endeavors to support most extended-keys (e.g. home, end, arrow-keys, etc.) on most terminals while simultaneously supporting control-key equivalents for all terminals.
  
-^ Extended Key ^ Ctrl-Key ^ ANSI((ANSI X3.64/ECMA-048 escape sequence)) ^ Other((e.g. VT-220 or XTerm escape sequence)) ^ Description (typical use) ^  +^ Extended Key ^ Decimal ^ Hex ^ Ctrl-Key ^ ANSI((ANSI X3.64/ECMA-048 escape sequence)) ^ Other((e.g. VT-220 or XTerm escape sequence)) ^ Description (typical use) ^  
-| Home         | Ctrl-B   | \e[H                    | \e[1~  | Move cursor to beginning of line or top of page/list/document | +| Home         | 2       | 02  | Ctrl-B   | \e[H                    | \e[1~  | Move cursor to beginning of line or top of page/list/document | 
-| End          | Ctrl-E   | \e[K and \e[F           | \e[4~  | Move cursor to end of line or bottom of page/list/document | +| End          | 5       | 05  | Ctrl-E   | \e[K and \e[F           | \e[4~  | Move cursor to end of line or bottom of page/list/document | 
-| Up-arrow     | Ctrl-tilde   | \e[A                    |        | Move cursor up one line or recall previous history item | +| Up-arrow     | 30      | 1E  | Ctrl-Caret   | \e[A                    |        | Move cursor up one line or recall previous history item | 
-| Down-arrow   | Ctrl-J   | \e[B                    |        | Move cursor down one line or recall next history item | +| Down-arrow   | 10      | 0A  | Ctrl-J   | \e[B                    |        | Move cursor down one line or recall next history item | 
-| Left-arrow   | Ctrl-]   | \e[D                    |        | Move cursor to the left | +| Left-arrow   | 29      | 1D  | Ctrl-]   | \e[D                    |        | Move cursor to the left | 
-| Right-arrow  | Ctrl-F   | \e[C                    |        | Move cursor to the right | +| Right-arrow  | 6       | 06  | Ctrl-F   | \e[C                    |        | Move cursor to the right | 
-| Page-up      | Ctrl-P   | \e[V                    | \e[5~  | Move cursor up one page | +| Page-up      | 16      | 10  | Ctrl-P   | \e[V                    | \e[5~  | Move cursor up one page | 
-| Page-down    | Ctrl-N   | \e[U                    | \e[6~  | Move cursor up one page | +| Page-down    | 14      | 0E  | Ctrl-N   | \e[U                    | \e[6~  | Move cursor up one page | 
-| Insert       | Ctrl-V   | \e[@                    | \e[2~  | Toggle insert/overwrite text mode | +| Insert       | 22      | 16  | Ctrl-V   | \e[@                    | \e[2~  | Toggle insert/overwrite text mode | 
-| Delete       | Ctrl-?                           | \e[3~  | Delete character under cursor (delete-right), also Ctrl-Backspace |+| Delete       | 127     | 7F  | Ctrl-?                           | \e[3~  | Delete character under cursor (delete-right), also Ctrl-Backspace |
  
  
Line 87: Line 117:
  
 The Synchronet Terminal Server will negotiate Telnet options with the client (enforcing echo and non-line-at-a-time modes), perform ''IAC'' (character 255) escaping, and CR/LF->CR and CR/NUL->CR translation (when not in //binary mode//). The Synchronet Terminal Server will negotiate Telnet options with the client (enforcing echo and non-line-at-a-time modes), perform ''IAC'' (character 255) escaping, and CR/LF->CR and CR/NUL->CR translation (when not in //binary mode//).
 +
 +==== Configure ====
 +Telnet support in the Synchronet Terminal Server can be configured via [[util:SCFG]]:Servers->Terminal Server->Telnet Support:
 +
 +<file>
 +╔══════════════════════════════════╗
 +║          Telnet Support          ║
 +╠══════════════════════════════════╣
 +║ │Enabled             Yes         ║
 +║ │Interfaces          0.0.0.0, :: ║
 +║ │Port                23          ║
 +║ │Command Debug       No          ║
 +║ │Send Go-Aheads      Yes         ║
 +╚══════════════════════════════════╝
 +</file>
  
 ==== Options ==== ==== Options ====
  
 Telnet options are negotiated between the client and server, normally without any indication to the user. 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. Telnet options can be re-negotiated at any time during a Telnet session, but most options are only negotiated during the initial connection.
Line 138: Line 185:
  
 SSHv2 support provided by [[dev:dependencies#cryptlib]]. SSHv2 support provided by [[dev:dependencies#cryptlib]].
 +
 +==== Configure ====
 +
 +SSH support in the Synchronet Terminal Server can be configured via [[util:SCFG]]:Servers->Terminal Server->SSH Support:
 +<file>
 +╔══════════════════════════════════════════════════════╗
 +║                      SSH Support                     ║
 +╠══════════════════════════════════════════════════════╣
 +║ │Enabled                       Yes                   ║
 +║ │Interfaces                    0.0.0.0, ::           ║
 +║ │Port                          22                    ║
 +║ │Connect Timeout               10 seconds            ║
 +║ │Error Level                   Warning               ║
 +║ │User Authentication Type      Valid Key or Username ║
 +║ │File Transfer (SFTP) Support  No                    ║
 +║ │Max SFTP Inactivity           N/                  ║
 +╚══════════════════════════════════════════════════════╝
 +</file>
  
 ==== cryptlib.key ==== ==== cryptlib.key ====
Line 146: Line 211:
   'Couldn't import the session key used to protect the private key' (-22) getting private key   'Couldn't import the session key used to protect the private key' (-22) getting private key
 ===== RLogin ===== ===== RLogin =====
-[[ftp://ftp.rfc-editor.org/in-notes/rfc1282.txt|RLogin]] clients are supported, by default, on the standard RLogin TCP port: 513.+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:SCFG]]:Servers->Terminal Server->RLogin Support: 
 + 
 +<file> 
 +╔══════════════════════════════════╗ 
 +║          RLogin Support          ║ 
 +╠══════════════════════════════════╣ 
 +║ │Enabled             Yes         ║ 
 +║ │Interfaces          0.0.0.0, :: ║ 
 +║ │Port                513         ║ 
 +╚══════════════════════════════════╝ 
 +</file> 
 + 
 +==== History  ====
  
-==== History of Synchronet'support for BSD RLogin ====+Synchronet's RLogin support has gone through some significant changes since its introduction in 2000.
  
 === SBBS v3.00c 2000 === === SBBS v3.00c 2000 ===
Line 197: Line 277:
  
   * [[person:digital man]] removed and deprecated the ''USE_2ND_RLOGIN'' option (and related [[monitor:sbbscon|sbbs]] command-line option and [[monitor:sbbsctrl]] checkbox) as this is now the **only** behavior supported by the Synchronet [[server:Terminal]] Server: the first string received from the RLogin client (''client-user-name'') **may** be a password, the second string received (''server-user-name'') **must** be a valid user ID (alias).   * [[person:digital man]] removed and deprecated the ''USE_2ND_RLOGIN'' option (and related [[monitor:sbbscon|sbbs]] command-line option and [[monitor:sbbsctrl]] checkbox) as this is now the **only** behavior supported by the Synchronet [[server:Terminal]] Server: the first string received from the RLogin client (''client-user-name'') **may** be a password, the second string received (''server-user-name'') **must** be a valid user ID (alias).
-  * [[person:digital man]] changed the ''bbs.rlogin_gate'' function to accept 3 optional arguments: ''client-user-name'', ''server-user-name'', and ''terminal'', in the order specified by the RFC 1282.+  * [[person:digital man]] changed the ''bbs.rlogin_gate'' function to accept 3 optional arguments: ''client-user-name'', ''server-user-name'', and ''terminal'', in the order specified by the RFC-[[rfc>1282]].
  
 ===== JavaScript ===== ===== JavaScript =====
Line 206: Line 286:
   * [[http://synchro.net/docs/jsobjs.html#console|console object]]   * [[http://synchro.net/docs/jsobjs.html#console|console object]]
  
-===== Source Code ===== 
- 
-The Synchronet Terminal Server source code makes up the majority of the C (and all of the C++) files found in ''[[dev:cvs]][[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/src/sbbs3/|/src/sbbs3]]'' with the main module being ''[[http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/sbbs3/main.cpp|main.cpp]]''. 
  
 ====== See Also ====== ====== See Also ======