Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
server:terminal [2019/06/09 00:18] – Details about changing key-bindings programmatically, installing hot key events, etc. digital man | server:terminal [2019/06/20 18:49] – Updated RLogin section, cosmetics. digital man |
---|
| |
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//). |
| |
| ==== Options ==== |
| |
| Telnet options are negotiated between the client and server, normally without any indication to the user. |
| |
| Telnet options can be re-negotiated at any time during a Telnet session, but most options are only negotiated during the initial connection. |
| |
| ^ Options ^ Request ^ Description ^ |
| | ECHO | WILL | Server will provide the echo of input keys, so request the the terminal does not echo (RFC-[[rfc>857]])| |
| | SUP_GA | WILL | Server does not send or expect to receive any Telnet Go-Ahead (GA) commands (RFC-[[rfc>858]]) | |
| | TERM_TYPE | DO | Server would like the client to provide the terminal-type, if available (RFC-[[rfc>930]]) | |
| | TERM_SPEED | DO | Server would like the client to provide the terminal-speed, if available (RFC-[[rfc>1079]]) | |
| | SEND_LOCATION | DO | Server would like the client to provide the user's location, if available (RFC-[[rfc>779]]) | |
| | NEGOTIATE_WINDOW_SIZE | DO | Server would like the client to provide the terminal dimensions (cols x rows), if available (RFC-[[rfc>1073]]) | |
| | NEW_ENVIRON | DO | Server would like the client to provide environment variables (RFC-[[rfc>1572]]) - unused | |
| |
| 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 //Debugging// log-level: |
| |
| <file> |
| 6/20 05:56:41p Node 1 sending telnet cmd: WILL Echo |
| 6/20 05:56:41p Node 1 sending telnet cmd: WILL Suppress Go Ahead |
| 6/20 05:56:41p Node 1 sending telnet cmd: DO Terminal Type |
| 6/20 05:56:41p Node 1 sending telnet cmd: DO Terminal Speed |
| 6/20 05:56:41p Node 1 sending telnet cmd: DO Send Location |
| 6/20 05:56:41p Node 1 sending telnet cmd: DO Negotiate About Window Size |
| 6/20 05:56:41p Node 1 sending telnet cmd: DO New Environment Option |
| 6/20 05:56:41p Node 1 received telnet cmd: DO Echo |
| 6/20 05:56:41p Node 1 received telnet cmd: DO Suppress Go Ahead |
| 6/20 05:56:41p Node 1 received telnet cmd: WILL Terminal Type |
| 6/20 05:56:41p Node 1 requesting telnet terminal type |
| 6/20 05:56:41p Node 1 received telnet cmd: WON'T Terminal Speed |
| 6/20 05:56:41p Node 1 sending telnet cmd: DON'T Terminal Speed |
| 6/20 05:56:41p Node 1 received telnet cmd: WON'T Send Location |
| 6/20 05:56:41p Node 1 sending telnet cmd: DON'T Send Location |
| 6/20 05:56:41p Node 1 received telnet cmd: WILL Negotiate About Window Size |
| 6/20 05:56:41p Node 1 received telnet sub-negotiation command: Negotiate About Window Size |
| 6/20 05:56:41p Node 1 received telnet window size: 80x24 |
| 6/20 05:56:41p Node 1 received telnet cmd: WON'T New Environment Option |
| 6/20 05:56:41p Node 1 received telnet sub-negotiation command: Terminal Type |
| 6/20 05:56:41p Node 1 received telnet terminal type: ANSI |
| </file> |
| |
| |
===== SSH ===== | ===== SSH ===== |
SSHv2 support provided by [[dev:dependencies#cryptlib]]. | SSHv2 support provided by [[dev:dependencies#cryptlib]]. |
| |
| ==== cryptlib.key ==== |
| |
| The SSH private key is stored in the file ''[[dir:ctrl]]/cryptlib.key'' and is encrypted with the configured System Password (from [[util:SCFG]]->System). If the System Password is changed **after** the ''cryptlib.key'' file has been generated (and encrypted), you will need to delete the key file and recycle the terminal server for the key file to be regenerated and re-encrypted with the new System Password. |
| |
| The following Terminal Server log message indicates a problem decrypting the ''cryptlib.key'' file: |
| '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. |
| |
| ==== History ==== |
| |
==== History of Synchronet's 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 === |
| |
* [[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 ===== |