Как настроить зашифрованный туннель SSH для VNC?
Вот что происходит:
Клиент TightVNC на моем клиенте Windows не взаимодействует с моим VNC-сервером Vino из-за некоторых функций шифрования, как показано здесь: Gnome 3.10 общий рабочий стол --- как настроить тип безопасности для VNC?, Поэтому я хотел создать туннель SSH. Но я понятия не имею, как это сделать. Не могли бы вы вести меня?
Вот как я хотел это настроить:
К моему рабочему столу под управлением Ubuntu GNOME с VNC-сервером Vino по умолчанию можно получить удаленный доступ через VNC, но с отключенным шифрованием (по умолчанию включено). Однако на моем ноутбуке с Windows я хочу иметь доступ к VNC-серверу с помощью VNC-клиента TightVNC, при этом все соединения между ними проходят через зашифрованный туннель SSH.
2 ответа
Перед подключением к VNC я использую клиент Putty ( https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html), чтобы создать SSH-соединение с моего ноутбука Windows на удаленный сервер Linux, и настроить туннель, используя это.
Я оставляю этот сеанс ssh запущенным, пока VNC работает, так что туннель остается включенным.
До того, как соединение Putty будет открыто, пока вы его конфигурируете, вы найдете пункт меню в списке категорий в левой части опций конфигурации клиента Putty под названием "Соединение" с элементом подменю под названием "ssh" и под это еще один пункт подменю под названием "Туннели".
На этой странице параметров настройте локальный (исходный) порт как 127.0.0.1:5021, а удаленный порт - как имя хоста или IP-адрес вашего сервера, а также удаленный порт, который прослушивает ваш vncserver на хосте linux. Сохраните сессию Putty, используя удобный псевдоним. Откройте сеанс и войдите на свой сервер Linux. Это создает туннель.
Теперь откройте свое приложение Windows VNC и попросите его подключиться к 127.0.0.1:5021 - и оно будет использовать настроенный вами туннель. Обратите внимание, что вы подключаетесь к порту VNC на локальном компьютере, который, по-видимому, находится на вашем удаленном компьютере, и обратите внимание, что на удаленном компьютере правила брандмауэра могут потребовать внесения изменений, чтобы разрешить локальный трафик на порт, объявленный VNC. сервер, но нет необходимости гарантировать, что интерфейс вашей сетевой карты разрешает трафик через этот порт, потому что он туннелируется через порт 22 (ваше соединение ssh). Ура, Джерри
Если IP-адрес вашего VNC-сервера 1.2.3.4 (и работает на стандартном порту), вы можете выполнить:
ssh -L 5959:127.0.0.1:5900 user@1.2.3.4
Это устанавливает зашифрованный туннель от порта 5959 вашего локального компьютера, который волшебным образом выходит на порт 5900 в 1.2.3.4.
Тогда вы можете VNC на localhost::5959
Выше предполагается, что вы также используете VNC на локальном компьютере, поэтому порт 5900 занят; 5959 это просто еще один порт. Если порт 5900 свободен, вы можете изменить 5959 в строке ssh на 5900 и просто подключить VNC к localhost (127.0.0.1) без указания порта.
Обратите внимание, что ваш VNC-сервер должен быть настроен для приема петлевых соединений; некоторые отклоняют их по умолчанию, чтобы не дать кому-то использовать VNCing и запустить бесконечный поток каскадных окон.