Безопасное подключение через VNC для обмена экранами с Mac (клиент) на Windows10 (сервер) через SSH-туннель.

Вопрос или проблема

Я пытаюсь установить безопасное соединение для доступа к экрану с моего Mac на машину с Windows 10 за пределами моей локальной сети. Я уже установил VNC сервер на Windows машине, и подключение работает идеально, используя только пароль.

Тем не менее, я хочу сделать это соединение более безопасным, используя SSH тоннель. Ниже я поделюсь шагами, которые я предпринял, и сообщением об ошибке, с которой я столкнулся.

Мой вопрос: когда я создал тоннель, я использовал конкретного пользователя на своей машине. Однако, когда я осуществляю доступ через VNC без тоннеля и только с паролем, я могу напрямую видеть экран моего рабочего стола без какой-либо аутентификации для пользователя Windows, в отличие от процесса с тоннелем.

Второй момент касается метода шифрования. Я прочитал в некоторых интернет-статьях, что VNC использует определенный метод шифрования, например, RSA-1 или что-то подобное, но я не уверен, как проверить его правильность или определить, подходит ли он для VNC.

Управление SSH соединением на Mac

1. Генерация вашего SSH ключа (если это еще не сделано):

Сначала я создаю ssh ключ для подключения с моего Mac, эти команды выполняются на стороне Mac OS:

ssh-keygen -t rsa

Это создаст два файла:

  • ~/.ssh/connect_from_mac_to_windows10_rsa (приватный ключ)
  • ~/.ssh/connect_from_mac_to_windows10_rsa.pub (публичный ключ)

После этого я скопировал публичный ключ в authorized keys на моей Windows машине.

2. Настройка VNC соединения с SSH тоннелем:

Я создал SSH тоннель, используя приватный ключ, и соединение было успешно установлено:

ssh -i ~/.ssh/connect_from_mac_to_windows10_rsa -L 5901:localhost:5900 [email protected]

1. Порты

Я открыл необходимые порты на моей Windows 10 и маршрутизаторе
порт 22
порт 5900

Управление SSH соединением на Mac

Я создаю SSH тоннель, используя приватный ключ:

ssh -i ~/.ssh/connect_from_mac_to_windows10_rsa -L 5901:localhost:5900 [email protected]

Соединение было успешно установлено, что позволяет мне управлять моей Windows машиной. Затем подключитесь через VNC:

  1. Откройте Finder и нажмите Cmd + K (или выберите “Переход > Подключиться к серверу”).
  2. Введите следующий адрес:
vnc://localhost:5901

У меня возникла следующая ошибка:

Невозможно установить связь с "localhost". Убедитесь, что удаленный компьютер доступен и что брандмауэр не блокирует доступ к экрану.

Что я не понимаю, если проблема связана с доступом к порту, удаленное соединение через VNC с только с паролем VNC не должно работать. Я проверил брандмауэр на своей Windows машине, и Tight VNC имеет необходимые разрешения на доступ.

Я пробовал использовать другие вьюеры, такие как Tight VNC и Real VNC, и результат был тот же: с публичным IP адресом и паролем VNC я мог делиться и видеть экран Windows с моего Mac. Однако, я никогда не смог достичь этого, используя SSH тоннель.

Я поделился здесь фотографиями, если вам нужно их увидеть:
введите описание ссылки здесь

Ответ или решение

Для обеспечения безопасного подключения VNC посредством SSH-туннеля с Mac (клиент) на Windows 10 (сервер) необходимо учесть несколько технических нюансов. Давайте разберем процесс, выявим возможные проблемы и предложим варианты решения.

Теория
Подключение через VNC напрямую с использованием пароля может быть уязвимым, так как передача данных идет без шифрования. SSH-туннель позволяет зашифровать весь трафик, что делает соединение безопасным. При этом туннелирование требует правильной настройки SSH-конфигурации и корректного открытия необходимых портов на уровне сети и фаервола.

Пример
Ваша конфигурация SSH-туннеля предполагает использование команды:

ssh -i ~/.ssh/connect_from_mac_to_windows10_rsa -L 5901:localhost:5900 [email protected]

То есть, вы создаете локальный туннель, который перенаправляет запросы на порт 5901 на вашем Mac на порт 5900 на удаленной Windows машине через localhost. Однако вы сталкиваетесь с проблемой неудачной коммуникации при использовании адреса vnc://localhost:5901.

Применение

  1. Проверка SSH ключей: Удостоверьтесь, что ваш ключ правильно оформлен и находится в authorized_keys на сервере Windows. Перепроверьте права доступа к ключам; они должны быть защищены (например, 600 для приватного ключа).

  2. Настройка VNC-сервера на Windows: Проверьте настройки VNC-сервера. Убедитесь, что он обслуживает подключения на порту 5900 и может принимать локальные подключения через localhost.

  3. Фаервол и маршрутизация: Поскольку соединение через SSH успешно устанавливается, проблема может быть связана с маршрутизацией VNC через туннель:

    • Убедитесь, что локальный порт 5901 на Mac открыт и прослушивается.
    • Проверьте настройки фаервола на Windows и маршрутизатора. Возможно, необходимо временно отключить фаервол, чтобы исключить его как источник проблемы.
  4. Диагностика среды SSH: Проверка успешности туннелирования может быть произведена с помощью проверки доступности конечного соединения через команду telnet: telnet localhost 5901.

  5. Использование разных VNC-клиентов: Если ошибка продолжается, попробуйте различные клиенты (например, RealVNC, TightVNC) для устранения проблем совместимости.

  6. Диагностика логов: Посмотрите SSH, VNC-сервер и системные логи на наличие любых ошибок или предупреждений, которые могут указывать на причину сбоя соединения.

Заключение
С учетом ошибок и деталей описанных выше, критично проверить каждую составляющую процесса подключения. Ваша основная задача — обеспечить корректность маршрутизации и согласованность настроек на всех уровнях сети и приложений. Если данные шаги не решат проблему, рекомендуется обратиться к документации VNC и SSH или рассмотреть использование дополнительных инструментов для мониторинга сетевых соединений для более глубокого анализа проблемы.

Оцените материал
Добавить комментарий

Капча загружается...