Wie verwende ich TightVNC Java Viewer mit integriertem SSH, um eine Verbindung zu einer Ubuntu Google Compute Engine-Instanz herzustellen?

922
Web Developer

Ich verwende den TightVNC Java Viewer, der hier heruntergeladen wurde: https://www.tightvnc.com/release-jviewer-2.6.php, der integrierte SSH-Unterstützung bietet. Damit möchte ich eine Verbindung zu meiner Google Compute Engine-Instanz herstellen, auf der Ubuntu 16.04 ausgeführt wird.

Ich habe bisher die folgenden Schritte ausgeführt, indem ich auf verschiedene Online-Dokumentation verwiesen habe:

  1. TightVNC Server auf der Ubuntu-Instanz installiert.

  2. Startet den VNC-Server mit vncserver -localhost :1

  3. Der OpenSSH-Server ist bereits auf der Instanz installiert.

  4. Weisen Sie der Instanz eine statische externe IP-Adresse zu

  5. Es wurde versucht, mit dem TightVNC Java Viewer auf den VNC-Server zuzugreifen, indem der SSH-Host als externe IP-Adresse der Instanz, der SSH-Port als Standard 22, der SSH-Benutzer als Instanzeigner, der Remote-Host als localhost und der Port als der VNC-Port angegeben wurden 5901.

Die Verbindung ist jedoch mit dem Fehler fehlgeschlagen: SSH-Verbindung kann nicht hergestellt werden: Keine unterstützten Authentifizierungsmethoden verfügbar.

Hinweis: Ich habe getestet, dass die VNC-Verbindung ohne SSH funktioniert, wenn ich den Port direkt 5901in den Firewall-Einstellungen der Compute Engine öffne und ausführen vncserver :1. Auf diese Weise kann ich mit dem TightVNC Java Viewer auf den Mate-Desktop zugreifen, den ich auf Ubuntu installiert habe. Ich möchte jedoch stattdessen eine sichere Verbindung über SSH verwenden. Was muss ich noch tun, um dies zu ermöglichen?

0

2 Antworten auf die Frage

0
Web Developer

In diesem Beitrag habe ich herausgefunden, dass TightVNC derzeit nur die Kennwortauthentifizierung für die SSH- und nicht für die Authentifizierung mit einem privaten Schlüssel unterstützt: http://vnc-tight-list.narkive.com/IGmBV7W6/tightvnc-java-viewer-jsch-key-based-authentication . Um es zu verwenden, müssen Sie die folgenden Schritte ausführen, um die Kennwortauthentifizierung für SSH in der Compute Engine-Instanz zu aktivieren: http://itmeditate.blogspot.in/2014/03/enable-password-authentication-for.html mit der Einschränkung dort erwähnt.

Vergewissern Sie sich außerdem, dass die folgende Konfiguration in Ihrer Datei / etc / ssh / sshd_config enthalten ist:

PermitRootLogin prohibit-password PermitEmptyPasswords no PasswordAuthentication no 

und lassen Sie die Passwortauthentifizierung nur für Ihren spezifischen Benutzernamen am Ende der Datei zu, wie hier erwähnt: https://serverfault.com/questions/307407/ssh-allow-password-for-one-user-rest-only-allow-public -Schlüssel

0
Aosoft

Wenn Sie die sicherere schlüsselbasierte Authentifizierung verwenden möchten, können Sie alternativ einen ssh-Client verwenden, um einen Tunnel unabhängig voneinander einzurichten und vncviewer durch ihn auszuführen. Ein Befehl wie dieser würde funktionieren, wenn Sie von einem Unix-basierten System aus eine Verbindung herstellen:

ssh -i /path/to/key -L 5901:localhost:5901 user@public.ip

Wenn Sie von Windows aus eine Verbindung herstellen, bietet putty eine GUI und kann auch Tunneling ausführen. Dann würden Sie Ihren vncviewer einfach auf localhost: 5901 ohne ssh zeigen, und Sie haben eine verschlüsselte vnc-Verbindung, ohne das Kennwort über die Leitung zu übergeben.