Как использовать TightVNC Java Viewer со встроенным SSH для подключения к экземпляру Ubuntu Google Compute Engine?

Как использовать TightVNC Java Viewer со встроенным SSH для подключения к экземпляру Ubuntu Google Compute Engine?

Я использую TightVNC Java Viewer, скачанный отсюда:https://www.tightvnc.com/release-jviewer-2.6.phpкоторый имеет встроенную поддержку SSH. Используя это, я хотел бы подключиться к своему экземпляру Google Compute Engine, который работает под управлением Ubuntu 16.04.

На данный момент я выполнил следующие шаги, сверяясь с различной онлайн-документацией:

  1. Установил TightVNC Server на экземпляр Ubuntu.

  2. Запустил VNC-сервер с помощьюvncserver -localhost :1

  3. Сервер OpenSSH уже установлен на экземпляре.

  4. Назначил статический внешний IP-адрес экземпляру.

  5. Попытка получить доступ к VNC-серверу с помощью TightVNC Java Viewer, указав SSH Host в качестве внешнего IP-адреса экземпляра, SSH Port в качестве значения по умолчанию 22, SSH User в качестве владельца экземпляра, Remote Host в качестве localhost и Port в качестве порта VNC 5901.

Но соединение прервалось с ошибкой:Невозможно установить SSH-соединение: поддерживаемые методы аутентификации отсутствуют.

Примечание: Я проверил, что соединение VNC работает без использования SSH, когда я напрямую открываю порт 5901в настройках брандмауэра Compute Engine и запускаю vncserver :1. Таким образом, используя сам TightVNC Java Viewer, я могу получить доступ к рабочему столу Mate, который я установил на Ubuntu. Но вместо этого я хотел бы использовать безопасное соединение через SSH. Так что еще мне нужно сделать, чтобы включить это?

решение1

В качестве альтернативы, если вы хотите использовать более безопасную аутентификацию на основе ключей, вы можете использовать ssh-клиент для независимой установки туннеля и запустить vncviewer через него. Такая команда будет работать, если вы подключаетесь из системы на основе unix:

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

Или, если вы подключаетесь из Windows, putty предоставляет графический интерфейс и может также выполнять туннелирование. Тогда вы просто указываете vncviewer на localhost:5901 без ssh, и у вас есть зашифрованное vnc-соединение без передачи пароля по сети.

решение2

Из этого поста я узнал, что в настоящее время TightVNC поддерживает только аутентификацию по паролю для SSH, но не аутентификацию по закрытому ключу:http://vnc-tight-list.narkive.com/IGmBV7W6/tightvnc-java-viewer-jsch-key-based-authentication. Таким образом, чтобы использовать его, необходимо выполнить следующие шаги, чтобы включить аутентификацию по паролю для SSH на экземпляре Compute Engine:http://itmeditate.blogspot.in/2014/03/enable-password-authentication-for.htmlс упомянутой там оговоркой.

Кроме того, убедитесь, что в вашем компьютере установлена ​​следующая конфигурация:/etc/ssh/sshd_configфайл:

PermitRootLogin prohibit-password
PermitEmptyPasswords no
PasswordAuthentication no

и разрешите аутентификацию по паролю только для вашего конкретного имени пользователя в конце файла, как указано здесь:https://serverfault.com/questions/307407/ssh-allow-password-for-one-user-rest-only-allow-public-keys

Связанный контент