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

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

Ich verwende den TightVNC Java Viewer, den ich hier heruntergeladen habe:https://www.tightvnc.com/release-jviewer-2.6.phpdas über integrierte SSH-Unterstützung verfügt. Damit möchte ich eine Verbindung zu meiner Google Compute Engine-Instanz herstellen, auf der Ubuntu 16.04 läuft.

Ich habe bisher die folgenden Schritte durchgeführt und dabei verschiedene Online-Dokumentationen zu Rate gezogen:

  1. TightVNC-Server auf der Ubuntu-Instanz installiert.

  2. Den VNC-Server gestartet mitvncserver -localhost :1

  3. Auf der Instanz ist bereits ein OpenSSH-Server installiert.

  4. Der Instanz wurde eine statische externe IP-Adresse zugewiesen

  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 Instanzbesitzer, der Remote-Host als localhost und der Port als VNC-Port angegeben wurden 5901.

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

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

Antwort1

Wenn Sie alternativ die sicherere schlüsselbasierte Authentifizierung verwenden möchten, können Sie mit einem SSH-Client unabhängig einen Tunnel einrichten und vncviewer darüber ausführen. Ein Befehl wie dieser würde funktionieren, wenn Sie sich von einem Unix-basierten System aus verbinden:

ssh -i /path/to/key -L 5901:localhost:5901 [email protected]

Oder, wenn Sie sich von Windows aus verbinden, bietet Putty eine GUI und kann auch Tunneling durchführen. Dann würden Sie Ihren VNCViewer einfach ohne SSH auf localhost:5901 richten und Sie haben eine verschlüsselte VNC-Verbindung, ohne das Passwort über das Kabel zu übertragen.

Antwort2

Aus diesem Beitrag habe ich erfahren, dass TightVNC derzeit nur die Kennwortauthentifizierung für SSH und keine private Schlüsselauthentifizierung unterstützt:http://vnc-tight-list.narkive.com/IGmBV7W6/tightvnc-java-viewer-jsch-key-based-authenticationUm es zu verwenden, müssen Sie die folgenden Schritte ausführen, um die Kennwortauthentifizierung für SSH auf der Compute Engine-Instanz zu aktivieren:http://itmeditate.blogspot.in/2014/03/enable-password-authentication-for.htmlmit dem darin genannten Vorbehalt.

Stellen Sie außerdem sicher, dass Sie die folgende Konfiguration in Ihrem/etc/ssh/sshd_configDatei:

PermitRootLogin prohibit-password
PermitEmptyPasswords no
PasswordAuthentication no

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

verwandte Informationen