Skip to content

Commit 8c455a4

Browse files
committed
GUACAMOLE-302: Add client-side options for SSH tunneling.
1 parent deb858a commit 8c455a4

File tree

5 files changed

+286
-0
lines changed

5 files changed

+286
-0
lines changed

guacamole-ext/src/main/resources/org/apache/guacamole/protocols/rdp.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,49 @@
465465
]
466466
},
467467

468+
{
469+
"name" : "ssh-tunnel",
470+
"fields" : [
471+
{
472+
"name" : "ssh-tunnel",
473+
"type" : "BOOLEAN",
474+
"options" : [ "true" ]
475+
},
476+
{
477+
"name" : "ssh-tunnel-host",
478+
"type" : "TEXT"
479+
},
480+
{
481+
"name" : "ssh-tunnel-port",
482+
"type" : "NUMERIC"
483+
},
484+
{
485+
"name" : "ssh-tunnel-host-key",
486+
"type" : "TEXT"
487+
},
488+
{
489+
"name" : "ssh-tunnel-username",
490+
"type" : "TEXT"
491+
},
492+
{
493+
"name" : "ssh-tunnel-password",
494+
"type" : "PASSWORD"
495+
},
496+
{
497+
"name" : "ssh-tunnel-private-key",
498+
"type" : "MULTILINE"
499+
},
500+
{
501+
"name" : "ssh-tunnel-passphrase",
502+
"type" : "PASSWORD"
503+
},
504+
{
505+
"name" : "ssh-tunnel-alive-interval",
506+
"type" : "NUMERIC"
507+
}
508+
]
509+
},
510+
468511
{
469512
"name" : "wol",
470513
"fields" : [

guacamole-ext/src/main/resources/org/apache/guacamole/protocols/ssh.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,49 @@
213213
]
214214
},
215215

216+
{
217+
"name" : "ssh-tunnel",
218+
"fields" : [
219+
{
220+
"name" : "ssh-tunnel",
221+
"type" : "BOOLEAN",
222+
"options" : [ "true" ]
223+
},
224+
{
225+
"name" : "ssh-tunnel-host",
226+
"type" : "TEXT"
227+
},
228+
{
229+
"name" : "ssh-tunnel-port",
230+
"type" : "NUMERIC"
231+
},
232+
{
233+
"name" : "ssh-tunnel-host-key",
234+
"type" : "TEXT"
235+
},
236+
{
237+
"name" : "ssh-tunnel-username",
238+
"type" : "TEXT"
239+
},
240+
{
241+
"name" : "ssh-tunnel-password",
242+
"type" : "PASSWORD"
243+
},
244+
{
245+
"name" : "ssh-tunnel-private-key",
246+
"type" : "MULTILINE"
247+
},
248+
{
249+
"name" : "ssh-tunnel-passphrase",
250+
"type" : "PASSWORD"
251+
},
252+
{
253+
"name" : "ssh-tunnel-alive-interval",
254+
"type" : "NUMERIC"
255+
}
256+
]
257+
},
258+
216259
{
217260
"name" : "wol",
218261
"fields" : [

guacamole-ext/src/main/resources/org/apache/guacamole/protocols/telnet.json

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,110 @@
106106
}
107107
]
108108
},
109+
110+
{
111+
"name" : "sftp",
112+
"fields" : [
113+
{
114+
"name" : "enable-sftp",
115+
"type" : "BOOLEAN",
116+
"options" : [ "true" ]
117+
},
118+
{
119+
"name" : "sftp-hostname",
120+
"type" : "TEXT"
121+
},
122+
{
123+
"name" : "sftp-port",
124+
"type" : "NUMERIC"
125+
},
126+
{
127+
"name" : "sftp-host-key",
128+
"type" : "TEXT"
129+
},
130+
{
131+
"name" : "sftp-username",
132+
"type" : "USERNAME"
133+
},
134+
{
135+
"name" : "sftp-password",
136+
"type" : "PASSWORD"
137+
},
138+
{
139+
"name" : "sftp-private-key",
140+
"type" : "MULTILINE"
141+
},
142+
{
143+
"name" : "sftp-passphrase",
144+
"type" : "PASSWORD"
145+
},
146+
{
147+
"name" : "sftp-root-directory",
148+
"type" : "TEXT"
149+
},
150+
{
151+
"name" : "sftp-directory",
152+
"type" : "TEXT"
153+
},
154+
{
155+
"name" : "sftp-server-alive-interval",
156+
"type" : "NUMERIC"
157+
},
158+
{
159+
"name" : "sftp-disable-download",
160+
"type" : "BOOLEAN",
161+
"options" : [ "true" ]
162+
},
163+
{
164+
"name" : "sftp-disable-upload",
165+
"type" : "BOOLEAN",
166+
"options" : [ "true" ]
167+
}
168+
]
169+
},
170+
171+
{
172+
"name" : "ssh-tunnel",
173+
"fields" : [
174+
{
175+
"name" : "ssh-tunnel",
176+
"type" : "BOOLEAN",
177+
"options" : [ "true" ]
178+
},
179+
{
180+
"name" : "ssh-tunnel-host",
181+
"type" : "TEXT"
182+
},
183+
{
184+
"name" : "ssh-tunnel-port",
185+
"type" : "NUMERIC"
186+
},
187+
{
188+
"name" : "ssh-tunnel-host-key",
189+
"type" : "TEXT"
190+
},
191+
{
192+
"name" : "ssh-tunnel-username",
193+
"type" : "TEXT"
194+
},
195+
{
196+
"name" : "ssh-tunnel-password",
197+
"type" : "PASSWORD"
198+
},
199+
{
200+
"name" : "ssh-tunnel-private-key",
201+
"type" : "MULTILINE"
202+
},
203+
{
204+
"name" : "ssh-tunnel-passphrase",
205+
"type" : "PASSWORD"
206+
},
207+
{
208+
"name" : "ssh-tunnel-alive-interval",
209+
"type" : "NUMERIC"
210+
}
211+
]
212+
},
109213

110214
{
111215
"name" : "typescript",

guacamole-ext/src/main/resources/org/apache/guacamole/protocols/vnc.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,49 @@
214214
}
215215
]
216216
},
217+
218+
{
219+
"name" : "ssh-tunnel",
220+
"fields" : [
221+
{
222+
"name" : "ssh-tunnel",
223+
"type" : "BOOLEAN",
224+
"options" : [ "true" ]
225+
},
226+
{
227+
"name" : "ssh-tunnel-host",
228+
"type" : "TEXT"
229+
},
230+
{
231+
"name" : "ssh-tunnel-port",
232+
"type" : "NUMERIC"
233+
},
234+
{
235+
"name" : "ssh-tunnel-host-key",
236+
"type" : "TEXT"
237+
},
238+
{
239+
"name" : "ssh-tunnel-username",
240+
"type" : "TEXT"
241+
},
242+
{
243+
"name" : "ssh-tunnel-password",
244+
"type" : "PASSWORD"
245+
},
246+
{
247+
"name" : "ssh-tunnel-private-key",
248+
"type" : "MULTILINE"
249+
},
250+
{
251+
"name" : "ssh-tunnel-passphrase",
252+
"type" : "PASSWORD"
253+
},
254+
{
255+
"name" : "ssh-tunnel-alive-interval",
256+
"type" : "NUMERIC"
257+
}
258+
]
259+
},
217260

218261
{
219262
"name" : "audio",

guacamole/src/main/frontend/src/translations/en.json

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,15 @@
646646
"FIELD_HEADER_SFTP_ROOT_DIRECTORY" : "File browser root directory:",
647647
"FIELD_HEADER_SFTP_DISABLE_UPLOAD" : "Disable file upload:",
648648
"FIELD_HEADER_SFTP_USERNAME" : "Username:",
649+
"FIELD_HEADER_SSH_TUNNEL" : "Enable SSH tunneling:",
650+
"FIELD_HEADER_SSH_TUNNEL_ALIVE_INTERVAL" : "SSH tunnel keepalive interval:",
651+
"FIELD_HEADER_SSH_TUNNEL_HOST" : "Hostname:",
652+
"FIELD_HEADER_SSH_TUNNEL_HOST_KEY" : "Public host key (Base64):",
653+
"FIELD_HEADER_SSH_TUNNEL_PASSPHRASE" : "Passphrase for private key:",
654+
"FIELD_HEADER_SSH_TUNNEL_PASSWORD" : "Password",
655+
"FIELD_HEADER_SSH_TUNNEL_PORT" : "Port:",
656+
"FIELD_HEADER_SSH_TUNNEL_PRIVATE_KEY" : "Private key:",
657+
"FIELD_HEADER_SSH_TUNNEL_USERNAME" : "Username:",
649658
"FIELD_HEADER_STATIC_CHANNELS" : "Static channel names:",
650659
"FIELD_HEADER_TIMEZONE" : "Time zone:",
651660
"FIELD_HEADER_USERNAME" : "Username:",
@@ -717,6 +726,7 @@
717726
"SECTION_HEADER_RECORDING" : "Screen Recording",
718727
"SECTION_HEADER_REMOTEAPP" : "RemoteApp",
719728
"SECTION_HEADER_SFTP" : "SFTP",
729+
"SECTION_HEADER_SSH_TUNNEL" : "SSH Tunneling",
720730
"SECTION_HEADER_WOL" : "Wake-on-LAN (WoL)"
721731

722732
},
@@ -753,6 +763,15 @@
753763
"FIELD_HEADER_SFTP_DISABLE_DOWNLOAD" : "Disable file download:",
754764
"FIELD_HEADER_SFTP_ROOT_DIRECTORY" : "File browser root directory:",
755765
"FIELD_HEADER_SFTP_DISABLE_UPLOAD" : "Disable file upload:",
766+
"FIELD_HEADER_SSH_TUNNEL" : "Enable SSH tunneling:",
767+
"FIELD_HEADER_SSH_TUNNEL_ALIVE_INTERVAL" : "SSH tunnel keepalive interval:",
768+
"FIELD_HEADER_SSH_TUNNEL_HOST" : "Hostname:",
769+
"FIELD_HEADER_SSH_TUNNEL_HOST_KEY" : "Public host key (Base64):",
770+
"FIELD_HEADER_SSH_TUNNEL_PASSPHRASE" : "Passphrase for private key:",
771+
"FIELD_HEADER_SSH_TUNNEL_PASSWORD" : "Password",
772+
"FIELD_HEADER_SSH_TUNNEL_PORT" : "Port:",
773+
"FIELD_HEADER_SSH_TUNNEL_PRIVATE_KEY" : "Private key:",
774+
"FIELD_HEADER_SSH_TUNNEL_USERNAME" : "Username:",
756775
"FIELD_HEADER_TERMINAL_TYPE" : "Terminal type:",
757776
"FIELD_HEADER_TIMEZONE" : "Time zone ($TZ):",
758777
"FIELD_HEADER_TYPESCRIPT_NAME" : "Typescript name:",
@@ -809,6 +828,7 @@
809828
"SECTION_HEADER_SESSION" : "Session / Environment",
810829
"SECTION_HEADER_TYPESCRIPT" : "Typescript (Text Session Recording)",
811830
"SECTION_HEADER_SFTP" : "SFTP",
831+
"SECTION_HEADER_SSH_TUNNEL" : "SSH Tunneling",
812832
"SECTION_HEADER_WOL" : "Wake-on-LAN (WoL)"
813833

814834
},
@@ -839,6 +859,27 @@
839859
"FIELD_HEADER_RECORDING_NAME" : "Recording name:",
840860
"FIELD_HEADER_RECORDING_PATH" : "Recording path:",
841861
"FIELD_HEADER_SCROLLBACK" : "Maximum scrollback size:",
862+
"FIELD_HEADER_SFTP_DIRECTORY" : "Default upload directory:",
863+
"FIELD_HEADER_SFTP_DISABLE_DOWNLOAD" : "Disable file download:",
864+
"FIELD_HEADER_SFTP_HOST_KEY" : "Public host key (Base64):",
865+
"FIELD_HEADER_SFTP_HOSTNAME" : "Hostname:",
866+
"FIELD_HEADER_SFTP_SERVER_ALIVE_INTERVAL" : "SFTP keepalive interval:",
867+
"FIELD_HEADER_SFTP_PASSPHRASE" : "Passphrase:",
868+
"FIELD_HEADER_SFTP_PASSWORD" : "Password:",
869+
"FIELD_HEADER_SFTP_PORT" : "Port:",
870+
"FIELD_HEADER_SFTP_PRIVATE_KEY" : "Private key:",
871+
"FIELD_HEADER_SFTP_ROOT_DIRECTORY" : "File browser root directory:",
872+
"FIELD_HEADER_SFTP_DISABLE_UPLOAD" : "Disable file upload:",
873+
"FIELD_HEADER_SFTP_USERNAME" : "Username:",
874+
"FIELD_HEADER_SSH_TUNNEL" : "Enable SSH tunneling:",
875+
"FIELD_HEADER_SSH_TUNNEL_ALIVE_INTERVAL" : "SSH tunnel keepalive interval:",
876+
"FIELD_HEADER_SSH_TUNNEL_HOST" : "Hostname:",
877+
"FIELD_HEADER_SSH_TUNNEL_HOST_KEY" : "Public host key (Base64):",
878+
"FIELD_HEADER_SSH_TUNNEL_PASSPHRASE" : "Passphrase for private key:",
879+
"FIELD_HEADER_SSH_TUNNEL_PASSWORD" : "Password",
880+
"FIELD_HEADER_SSH_TUNNEL_PORT" : "Port:",
881+
"FIELD_HEADER_SSH_TUNNEL_PRIVATE_KEY" : "Private key:",
882+
"FIELD_HEADER_SSH_TUNNEL_USERNAME" : "Username:",
842883
"FIELD_HEADER_TERMINAL_TYPE" : "Terminal type:",
843884
"FIELD_HEADER_TYPESCRIPT_NAME" : "Typescript name:",
844885
"FIELD_HEADER_TYPESCRIPT_PATH" : "Typescript path:",
@@ -892,6 +933,8 @@
892933
"SECTION_HEADER_RECORDING" : "Screen Recording",
893934
"SECTION_HEADER_TYPESCRIPT" : "Typescript (Text Session Recording)",
894935
"SECTION_HEADER_NETWORK" : "Network",
936+
"SECTION_HEADER_SFTP" : "SFTP",
937+
"SECTION_HEADER_SSH_TUNNEL" : "SSH Tunneling",
895938
"SECTION_HEADER_WOL" : "Wake-on-LAN (WoL)"
896939

897940
},
@@ -936,6 +979,15 @@
936979
"FIELD_HEADER_SFTP_ROOT_DIRECTORY" : "File browser root directory:",
937980
"FIELD_HEADER_SFTP_DISABLE_UPLOAD" : "Disable file upload:",
938981
"FIELD_HEADER_SFTP_USERNAME" : "Username:",
982+
"FIELD_HEADER_SSH_TUNNEL" : "Enable SSH tunneling:",
983+
"FIELD_HEADER_SSH_TUNNEL_ALIVE_INTERVAL" : "SSH tunnel keepalive interval:",
984+
"FIELD_HEADER_SSH_TUNNEL_HOST" : "Hostname:",
985+
"FIELD_HEADER_SSH_TUNNEL_HOST_KEY" : "Public host key (Base64):",
986+
"FIELD_HEADER_SSH_TUNNEL_PASSPHRASE" : "Passphrase for private key:",
987+
"FIELD_HEADER_SSH_TUNNEL_PASSWORD" : "Password",
988+
"FIELD_HEADER_SSH_TUNNEL_PORT" : "Port:",
989+
"FIELD_HEADER_SSH_TUNNEL_PRIVATE_KEY" : "Private key:",
990+
"FIELD_HEADER_SSH_TUNNEL_USERNAME" : "Username:",
939991
"FIELD_HEADER_SWAP_RED_BLUE" : "Swap red/blue components:",
940992
"FIELD_HEADER_WOL_BROADCAST_ADDR" : "Broadcast address for WoL packet:",
941993
"FIELD_HEADER_WOL_MAC_ADDR" : "MAC address of the remote host:",
@@ -993,6 +1045,7 @@
9931045
"SECTION_HEADER_RECORDING" : "Screen Recording",
9941046
"SECTION_HEADER_REPEATER" : "VNC Repeater",
9951047
"SECTION_HEADER_SFTP" : "SFTP",
1048+
"SECTION_HEADER_SSH_TUNNEL" : "SSH Tunneling",
9961049
"SECTION_HEADER_WOL" : "Wake-on-LAN (WoL)"
9971050

9981051
},

0 commit comments

Comments
 (0)