diff --git a/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm b/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm
index 18495aec92b8e82e3affa34fec6d8d8555bd8049..5026280c605b56446a4e51fc7df89dcf89300d31 100644
--- a/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm
+++ b/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm
@@ -3,46 +3,46 @@ object TelnetCfgDlg: TTelnetCfgDlg
   Top = 354
   BorderStyle = bsDialog
   Caption = 'Telnet Server Configuration'
-  ClientHeight = 234
-  ClientWidth = 286
+  ClientHeight = 288
+  ClientWidth = 352
   Color = clBtnFace
   ParentFont = True
   OldCreateOrder = True
   Position = poScreenCenter
   OnShow = FormShow
-  PixelsPerInch = 96
-  TextHeight = 13
+  PixelsPerInch = 120
+  TextHeight = 16
   object PageControl: TPageControl
-    Left = 3
-    Top = 3
-    Width = 278
-    Height = 186
-    ActivePage = TelnetTabSheet
-    TabIndex = 1
+    Left = 4
+    Top = 4
+    Width = 342
+    Height = 229
+    ActivePage = SshTabSheet
+    TabIndex = 3
     TabOrder = 0
     object GeneralTabSheet: TTabSheet
       Caption = 'General'
       object FirstNodeLabel: TLabel
-        Left = 7
-        Top = 10
-        Width = 78
-        Height = 20
+        Left = 9
+        Top = 12
+        Width = 96
+        Height = 25
         AutoSize = False
         Caption = 'First Node'
       end
       object LastNodeLabel: TLabel
-        Left = 7
-        Top = 36
-        Width = 74
-        Height = 20
+        Left = 9
+        Top = 44
+        Width = 91
+        Height = 25
         AutoSize = False
         Caption = 'Last Node'
       end
       object AutoStartCheckBox: TCheckBox
-        Left = 148
-        Top = 10
-        Width = 117
-        Height = 19
+        Left = 182
+        Top = 12
+        Width = 144
+        Height = 24
         Hint = 'Automatically start Telnet server'
         Caption = 'Auto Startup'
         ParentShowHint = False
@@ -50,9 +50,9 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 4
       end
       object FirstNodeEdit: TEdit
-        Left = 85
-        Top = 10
-        Width = 39
+        Left = 105
+        Top = 12
+        Width = 48
         Height = 21
         Hint = 'First node number available for Telnet logins'
         ParentShowHint = False
@@ -60,10 +60,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 0
       end
       object XtrnMinCheckBox: TCheckBox
-        Left = 148
-        Top = 36
-        Width = 117
-        Height = 20
+        Left = 182
+        Top = 44
+        Width = 144
+        Height = 25
         Hint = 'External programs run in a minimized window'
         Caption = 'Minimize Externals'
         ParentShowHint = False
@@ -71,9 +71,9 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 5
       end
       object LastNodeEdit: TEdit
-        Left = 85
-        Top = 36
-        Width = 39
+        Left = 105
+        Top = 44
+        Width = 48
         Height = 21
         Hint = 'Last node number available for Telnet logins'
         ParentShowHint = False
@@ -81,10 +81,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 1
       end
       object HostnameCheckBox: TCheckBox
-        Left = 7
-        Top = 88
-        Width = 117
-        Height = 19
+        Left = 9
+        Top = 108
+        Width = 144
+        Height = 24
         Hint = 'Automatically lookup client'#39's hostname via DNS'
         Caption = 'Hostname Lookup'
         ParentShowHint = False
@@ -92,10 +92,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 2
       end
       object QWKEventsCheckBox: TCheckBox
-        Left = 148
-        Top = 88
-        Width = 117
-        Height = 20
+        Left = 182
+        Top = 108
+        Width = 144
+        Height = 25
         Hint = 'Handle QWK Message Packet Events in This Instance'
         Caption = 'QWK Msg Events'
         ParentShowHint = False
@@ -103,10 +103,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 6
       end
       object JavaScriptCheckBox: TCheckBox
-        Left = 148
-        Top = 114
-        Width = 117
-        Height = 20
+        Left = 182
+        Top = 140
+        Width = 144
+        Height = 25
         Hint = 'Enable JavaScript Support'
         Caption = 'JavaScript Support'
         ParentShowHint = False
@@ -114,10 +114,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 7
       end
       object IdentityCheckBox: TCheckBox
-        Left = 7
-        Top = 114
-        Width = 117
-        Height = 19
+        Left = 9
+        Top = 140
+        Width = 144
+        Height = 24
         Hint = 'Automatically lookup client'#39's identity via IDENT protocol'
         Caption = 'Identity Lookup'
         ParentShowHint = False
@@ -125,10 +125,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 3
       end
       object EventsCheckBox: TCheckBox
-        Left = 148
-        Top = 62
-        Width = 117
-        Height = 20
+        Left = 182
+        Top = 76
+        Width = 144
+        Height = 25
         Hint = 'Enable the events thread'
         Caption = 'Events Enabled'
         ParentShowHint = False
@@ -140,26 +140,26 @@ object TelnetCfgDlg: TTelnetCfgDlg
       Caption = 'Telnet'
       ImageIndex = 1
       object InterfaceLabel: TLabel
-        Left = 7
-        Top = 36
-        Width = 78
-        Height = 21
+        Left = 9
+        Top = 44
+        Width = 96
+        Height = 26
         AutoSize = False
         Caption = 'Interface (IP)'
       end
       object TelnetPortLabel: TLabel
-        Left = 7
-        Top = 10
-        Width = 78
-        Height = 21
+        Left = 9
+        Top = 12
+        Width = 96
+        Height = 26
         AutoSize = False
         Caption = 'Listening Port'
       end
       object CmdLogCheckBox: TCheckBox
-        Left = 7
-        Top = 88
-        Width = 169
-        Height = 21
+        Left = 9
+        Top = 108
+        Width = 208
+        Height = 26
         Hint = 'Log (debug) all transmitted and received Telnet commands'
         Caption = 'Log Telnet Commands'
         ParentShowHint = False
@@ -167,10 +167,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 3
       end
       object TelnetInterfaceEdit: TEdit
-        Left = 85
-        Top = 36
-        Width = 156
-        Height = 21
+        Left = 105
+        Top = 44
+        Width = 192
+        Height = 24
         Hint = 
           'Enter your Network adapter'#39's static IP address here or blank for' +
           ' <ANY>'
@@ -179,20 +179,20 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 1
       end
       object TelnetPortEdit: TEdit
-        Left = 85
-        Top = 10
-        Width = 39
-        Height = 21
+        Left = 105
+        Top = 12
+        Width = 48
+        Height = 24
         Hint = 'TCP port for incoming connections (default=23)'
         ParentShowHint = False
         ShowHint = True
         TabOrder = 0
       end
       object TelnetGaCheckBox: TCheckBox
-        Left = 7
-        Top = 62
-        Width = 169
-        Height = 21
+        Left = 9
+        Top = 76
+        Width = 208
+        Height = 26
         Hint = 
           'Send periodic Telnet GA commands to help detect dropped connecti' +
           'ons'
@@ -202,10 +202,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 2
       end
       object AutoLogonCheckBox: TCheckBox
-        Left = 7
-        Top = 114
-        Width = 117
-        Height = 19
+        Left = 9
+        Top = 140
+        Width = 144
+        Height = 24
         Hint = 'Allow V-exempt users to auto-logon based on their IP address'
         Caption = 'AutoLogon via IP'
         ParentShowHint = False
@@ -217,25 +217,25 @@ object TelnetCfgDlg: TTelnetCfgDlg
       Caption = 'RLogin'
       ImageIndex = 3
       object RLoginPortLabel: TLabel
-        Left = 7
-        Top = 10
-        Width = 78
-        Height = 21
+        Left = 9
+        Top = 12
+        Width = 96
+        Height = 26
         AutoSize = False
         Caption = 'Listening Port'
       end
       object RLoginInterfaceLabel: TLabel
-        Left = 7
-        Top = 36
-        Width = 78
-        Height = 21
+        Left = 9
+        Top = 44
+        Width = 96
+        Height = 26
         AutoSize = False
         Caption = 'Interface (IP)'
       end
       object RLoginPortEdit: TEdit
-        Left = 85
-        Top = 10
-        Width = 39
+        Left = 105
+        Top = 12
+        Width = 48
         Height = 21
         Hint = 'TCP port for incoming connections (default=513)'
         ParentShowHint = False
@@ -243,9 +243,9 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 0
       end
       object RLoginInterfaceEdit: TEdit
-        Left = 85
-        Top = 36
-        Width = 156
+        Left = 105
+        Top = 44
+        Width = 192
         Height = 21
         Hint = 
           'Enter your Network adapter'#39's static IP address here or blank for' +
@@ -255,10 +255,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 2
       end
       object RLoginEnabledCheckBox: TCheckBox
-        Left = 184
-        Top = 10
-        Width = 73
-        Height = 17
+        Left = 226
+        Top = 12
+        Width = 90
+        Height = 21
         Hint = 'Enable the RLogin port'
         Caption = 'Enabled'
         ParentShowHint = False
@@ -267,10 +267,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         OnClick = RLoginEnabledCheckBoxClick
       end
       object RLoginIPallowButton: TButton
-        Left = 158
-        Top = 62
-        Width = 83
-        Height = 21
+        Left = 194
+        Top = 76
+        Width = 103
+        Height = 26
         Hint = 'IP addresses of trusted hosts to allow RLogins from'
         Caption = 'Allowed IPs'
         ParentShowHint = False
@@ -279,10 +279,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         OnClick = RLoginIPallowButtonClick
       end
       object RLogin2ndNameCheckBox: TCheckBox
-        Left = 7
-        Top = 62
-        Width = 138
-        Height = 21
+        Left = 9
+        Top = 76
+        Width = 169
+        Height = 26
         Hint = 'Use 2nd RLogin account name for the BBS user name'
         Caption = 'Use 2nd Login Name'
         ParentShowHint = False
@@ -294,36 +294,36 @@ object TelnetCfgDlg: TTelnetCfgDlg
       Caption = 'SSH'
       ImageIndex = 4
       object SshPortLabel: TLabel
-        Left = 7
-        Top = 10
-        Width = 78
-        Height = 21
+        Left = 9
+        Top = 12
+        Width = 96
+        Height = 26
         AutoSize = False
         Caption = 'Listening Port'
       end
       object SshInterfaceLabel: TLabel
-        Left = 7
-        Top = 36
-        Width = 78
-        Height = 21
+        Left = 9
+        Top = 44
+        Width = 96
+        Height = 26
         AutoSize = False
         Caption = 'Interface (IP)'
       end
       object SshPortEdit: TEdit
-        Left = 85
-        Top = 10
-        Width = 39
-        Height = 21
-        Hint = 'TCP port for incoming connections (default=513)'
+        Left = 105
+        Top = 12
+        Width = 48
+        Height = 24
+        Hint = 'TCP port for incoming connections (default=22)'
         ParentShowHint = False
         ShowHint = True
         TabOrder = 0
       end
       object SshEnabledCheckBox: TCheckBox
-        Left = 184
-        Top = 10
-        Width = 73
-        Height = 17
+        Left = 226
+        Top = 12
+        Width = 90
+        Height = 21
         Hint = 'Enable the Secure Shell (SSH) port'
         Caption = 'Enabled'
         ParentShowHint = False
@@ -332,10 +332,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         OnClick = SshEnabledCheckBoxClick
       end
       object SshInterfaceEdit: TEdit
-        Left = 85
-        Top = 36
-        Width = 156
-        Height = 21
+        Left = 105
+        Top = 44
+        Width = 192
+        Height = 24
         Hint = 
           'Enter your Network adapter'#39's static IP address here or blank for' +
           ' <ANY>'
@@ -348,25 +348,25 @@ object TelnetCfgDlg: TTelnetCfgDlg
       Caption = 'Sound'
       ImageIndex = 2
       object AnswerSoundLabel: TLabel
-        Left = 7
-        Top = 10
-        Width = 52
-        Height = 20
+        Left = 9
+        Top = 12
+        Width = 64
+        Height = 25
         AutoSize = False
         Caption = 'Answer'
       end
       object HnagupSoundLabel: TLabel
-        Left = 7
-        Top = 36
-        Width = 52
-        Height = 20
+        Left = 9
+        Top = 44
+        Width = 64
+        Height = 25
         AutoSize = False
         Caption = 'Hangup'
       end
       object AnswerSoundEdit: TEdit
-        Left = 72
-        Top = 10
-        Width = 169
+        Left = 89
+        Top = 12
+        Width = 208
         Height = 21
         Hint = 'Sound file to play when accepting an incoming connection'
         ParentShowHint = False
@@ -374,18 +374,18 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 0
       end
       object AnswerSoundButton: TButton
-        Left = 247
-        Top = 10
-        Width = 20
-        Height = 21
+        Left = 304
+        Top = 12
+        Width = 25
+        Height = 26
         Caption = '...'
         TabOrder = 1
         OnClick = AnswerSoundButtonClick
       end
       object HangupSoundEdit: TEdit
-        Left = 72
-        Top = 36
-        Width = 169
+        Left = 89
+        Top = 44
+        Width = 208
         Height = 21
         Hint = 'Sound file to play when disconnecting'
         ParentShowHint = False
@@ -393,10 +393,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
         TabOrder = 2
       end
       object HangupSoundButton: TButton
-        Left = 247
-        Top = 36
-        Width = 20
-        Height = 21
+        Left = 304
+        Top = 44
+        Width = 25
+        Height = 26
         Caption = '...'
         TabOrder = 3
         OnClick = HangupSoundButtonClick
@@ -404,10 +404,10 @@ object TelnetCfgDlg: TTelnetCfgDlg
     end
   end
   object OKBtn: TButton
-    Left = 20
-    Top = 201
-    Width = 76
-    Height = 25
+    Left = 25
+    Top = 247
+    Width = 93
+    Height = 31
     Caption = 'OK'
     Default = True
     ModalResult = 1
@@ -415,20 +415,20 @@ object TelnetCfgDlg: TTelnetCfgDlg
     OnClick = OKBtnClick
   end
   object CancelBtn: TButton
-    Left = 104
-    Top = 201
-    Width = 75
-    Height = 25
+    Left = 128
+    Top = 247
+    Width = 92
+    Height = 31
     Cancel = True
     Caption = 'Cancel'
     ModalResult = 2
     TabOrder = 2
   end
   object ApplyBtn: TButton
-    Left = 189
-    Top = 201
-    Width = 76
-    Height = 25
+    Left = 233
+    Top = 247
+    Width = 93
+    Height = 31
     Cancel = True
     Caption = 'Apply'
     TabOrder = 3