Selaa lähdekoodia

better error messages for X11 forwarding issues

Eugene Pankov 4 vuotta sitten
vanhempi
sitoutus
cba90cec0a
1 muutettua tiedostoa jossa 10 lisäystä ja 1 poistoa
  1. 10 1
      terminus-ssh/src/api.ts

+ 10 - 1
terminus-ssh/src/api.ts

@@ -140,6 +140,9 @@ export class SSHSession extends BaseSession {
             this.shell = await this.openShellChannel({ x11: this.connection.x11 })
         } catch (err) {
             this.emitServiceMessage(colors.bgRed.black(' X ') + ` Remote rejected opening a shell channel: ${err}`)
+            if (err.toString().includes('Unable to request X11')) {
+                this.emitServiceMessage('    Make sure `xauth` is installed on the remote side')
+            }
             return
         }
 
@@ -245,7 +248,13 @@ export class SSHSession extends BaseSession {
             }
             socket.on('error', e => {
                 // eslint-disable-next-line @typescript-eslint/no-base-to-string
-                this.emitServiceMessage(colors.bgRed.black(' X ') + ` Could not connect to the X server ${xHost}:${xPort}: ${e}`)
+                this.emitServiceMessage(colors.bgRed.black(' X ') + ` Could not connect to the X server: ${e}`)
+                this.emitServiceMessage(`    Terminus tried to connect to ${xHost}:${xPort} based on the DISPLAY environment var (${displaySpec})`)
+                if (process.platform === 'win32') {
+                    this.emitServiceMessage('    To use X forwarding, you need a local X server, e.g.:')
+                    this.emitServiceMessage('    * VcXsrv: https://sourceforge.net/projects/vcxsrv/')
+                    this.emitServiceMessage('    * Xming: https://sourceforge.net/projects/xming/')
+                }
                 reject()
             })
             socket.on('connect', () => {