- Remote Linux desktop on your VPS with SSH and VNC
- Prerequisites
- What’s the BEST DEAL in cloud hosting?
- Forwarding single X applications
- Forwarding an entire remote Linux desktop
- Remote Linux desktops via VNC
- Further resources
- Как туннелировать VNC через SSH
- Настройка PuTTY
- Подключение с помощью TightVNC
- Клиенты SSH с поддержкой туннелирования
- Установка и использование VNC через SSH в Ubuntu 18.04
- Установим окружение рабочего стола и VNC сервер
- Конфигурация VNC сервера
- Безопасное подключение настольного компьютера VNC
- Запуск VNC в качестве системного сервиса
- Заключение
- Добавить комментарий Отменить ответ
Remote Linux desktop on your VPS with SSH and VNC
While you usually connect to your VPS via a terminal, you can also connect to a remote Linux desktop via SSH or VNC to run desktop GUI apps.
There are a number of ways to get this done, from running single commands via X11 forwarding and ssh , to forwarding an entire desktop, to using VNC. In this tutorial, we’ll cover how to do each of these so that you can choose the application that works best for your needs.
Note: We can’t guarantee these operations will be particularly fast—primarily due to latency between your machine and your VPS—but it could come in handy every once in awhile.
Get 480GB NVMe extra storage for FREE
Celebrating our 9 year anniversary! Capacity is limited and some deals will sell out. Get yours before they are gone!
Prerequisites
- A VPS running any of our available OS options.
- A non-root user account (commands requiring escalated privileges will use sudo ).
- A local machine running Linux, an OS X machine with XQuartz installed, or a Windows machine with Xming installed—this tutorial depends on having some type of X server running locally.
- Windows users should install Xming.
- OS X users should install XQuartz.
- Once Xming/XQuartz are installed, you can then launch an xterm or other terminal to ssh into your VPS and enable X11 tunneling.
What’s the BEST DEAL in cloud hosting?
Develop at hyperspeed with a Performance VPS from SSD Nodes. We DOUBLED the amount of blazing-fast NVMe storage on our most popular plan and beefed up the CPU offering on these plans. There’s nothing else like it on the market, at least not at these prices.
Score a 16GB Performance VPS with 160GB of NVMe storage for just $99/year for a limited time!
Forwarding single X applications
To forward a remote Linux desktop running on your VPS, which allows you to view X applications on your local machine, you should connect via ssh using the -X option, which enables X forwarding, and the -C option, which enables data compression.
Once into the VPS, you should first install the xauth package.
Then, open /etc/ssh/sshd_config with your favorite editor and look for the X11Forwarding option. This line should be uncommented and be changed to X11Forwarding yes .
After that, you should restart sshd .
You should then disconnect from your VPS and reconnect. At this point, check to make sure that X11 forwarding is indeed enabled. You should see the following output if it’s working correctly:
Let’s install something simple to test out—how about xclock ? Once it’s installed, you can run it from the VPS and it will appear on your local machine’s desktop.
Now you can run just about any X application, from gedit to firefox . Could be particularly useful if you need to install something on your VPS that only has a graphical installer.
Forwarding an entire remote Linux desktop
Running single X applications might be useful every now and then, but what about a full remote Linux desktop? That could go a long way if you need to use GUI applications on your VPS regularly.
For this tutorial, we’ll quickly install the XFCE desktop environment—a good, low-resource choice for this kind of usage—and then forward it via SSH.
Debian/Ubuntu
CentOS
Once XFCE is installed, you can SSH into your VPS (if you’re not already) and begin a new session:
The remote desktop will appear directly on your own.
A remote XFCE session running (somewhat ungracefully) on my Fedora/Gnome-based local machine via X11 forwarding |
Remote Linux desktops via VNC
VNC is yet another option for those who want to connect to a remote machine and use the full desktop. It’s a little more involved that some of the others, but we’ll walk through the quickest way to get a VNC server up and running.
Before you go ahead with VNC, you should follow the instructions above on installing XFCE or another desktop environment.
First, you need to install a VNC server on your VPS.
Then you can run the server itself. The first time, you’ll be prompted to create a VNC-only password.
Finally, start up your favorite VNC client. A number of options exist depending on your operating system:
- Vinagre [Linux]
- Real VNC [Windows/OS X/Linux/iOS/Android]
- TightVNC [Windows/OS X/Linux]
- TigerVNC [Linux/Windows/OS X]
Connect to your VNC server by appending :1 to the IP address of your VPS. You’ll have access to the full desktop!
Note: The default VNC server isn’t very secure, and creates another potential attack vector. Be sure to check out the resources below for more information about securing your VNC server.
Further resources
[cta text=»Run a remote desktop for $1.11/mo and get 16GB RAM.» text2=»You’re 90 seconds away from running a remote desktop on SSD Nodes!» button=»Deploy a remote desktop»]
Источник
Как туннелировать VNC через SSH
Если вы подключаетесь к удаленному рабочему столу по протоколу VNC, ваше соединение может быть небезопасным. Некоторые клиенты VNC, такие как популярный TightVNC, не шифруют ваше соединение после начальной стадии входа в систему. Чтобы обойти проблему, вы можете туннелировать соединение VNC через туннель Secure Shell (SSH).
Туннель SSH не только обеспечивает полностью безопасное соединение для VNC, но также позволяет использовать соединения VNC, когда типичный порт VNC (порт 5901) заблокирован. Некоторые корпоративные сети блокируют общие порты, такие как порт 5901, для дополнительной безопасности, поэтому туннелирование VNC через SSH позволит вам обойти эту проблему.
Настройка PuTTY
В Windows 10 встроен SSH-клиент, благодаря Windows PowerShell, но это только недавняя разработка. Если вы хотите узнать, как туннелировать VNC через SSH, рекомендуется использовать PuTTY для подключения к вашему SSH-серверу.
PuTTY предлагает графический интерфейс пользователя, который можно легко настроить, чтобы вы могли туннелировать через соединение другое программное обеспечение, такое как программа просмотра VNC. Чтобы это работало, вам необходимо иметь подходящий SSH-сервер, установленный на удаленном настольном ПК или сервере, к которому вы хотите подключиться через VNC.
- Для начала загрузите PuTTY и откройте клиент.
- Главное меню сеанса позволяет вам ввести IP-адрес вашего сервера или имя хоста. Введите адрес вашего SSH-сервера в текстовом поле Имя хоста (или IP-адрес). Если ваш SSH-порт отличается от стандартного порта 22, введите его в поле «Порт».
- Вы также захотите сохранить этот сеанс, поэтому в текстовом поле «Сохраненные сеансы» добавьте подходящее имя для вашего SSH-соединения и нажмите кнопку «Сохранить».
- В левом меню разверните вкладку «Соединение», затем сделайте то же самое для SSH. Нажмите на Туннели.
- В разделе «Переадресация портов» меню «Туннели» вы предоставите сведения, которые позволят PuTTY туннелировать ваше соединение VNC через SSH. В текстовом поле «Порт источника» введите 5901. В текстовом поле «Адресат» введите свой удаленный IP-адрес: 5901, используя IP-адрес удаленного настольного ПК или сервера. Например, 192.168.1.100:5901 подойдет.
- Вернитесь в раздел «Сеанс», щелкните имя сохраненного сеанса в разделе «Сохраненные сеансы», затем нажмите «Сохранить», чтобы сохранить настройки.
- Когда настройки PuTTY будут готовы, установите соединение SSH, нажав кнопку «Открыть» внизу. Вам потребуется ввести имя пользователя и пароль, необходимые для подключения SSH, когда PuTTY попытается это сделать.
- После завершения входа в систему вам будет предоставлен доступ к окну SSH-терминала для удаленного рабочего стола.
С активным туннелем SSH к серверу удаленного рабочего стола вы сможете установить соединение VNC. Вы можете использовать любой VNC-клиент по вашему выбору, но в этом руководстве будет рассказано, как подключиться с помощью TightVNC, популярного и бесплатного VNC-клиента для Windows и Linux.
Вы можете свернуть PuTTY, пока соединение активно.
Подключение с помощью TightVNC
Если ваше SSH-соединение активно, подключение с использованием TightVNC довольно простое. Это предполагает, что ваш VNC-сервер работает на вашем удаленном ПК или сервере.
- Откройте TightVNC, чтобы начать. В разделе «Подключение» введите localhost :: 5901 или 127.0.0.1::5901 в текстовое поле «Удаленный хост». PuTTY контролирует этот порт и автоматически отправит это соединение, когда попытка будет предпринята, на ваш удаленный сервер.
- Вы можете настроить свое подключение VNC дальше, нажав «Опции», но, если вы готовы к подключению, нажмите «Подключиться».
- Вам будет предложено ввести пароль вашего сервера VNC, поэтому укажите его во всплывающем окне «Аутентификация VNC» и нажмите кнопку «ОК».
Если ваше SSH-соединение работает правильно, TightVNC должен загрузить окно удаленного рабочего стола VNC, готовое для использования.
Клиенты SSH с поддержкой туннелирования
Хотя TightVNC является популярным клиентом Windows для VNC-соединений, он не поддерживает SSH-туннелирование внутри самого клиента, что требует использования PuTTY для установления соединения.
Однако другие VNC-клиенты включают SSH-туннелирование внутри самого клиента. Одним из примеров является SSVNC, который, хотя и базовый, будет туннелировать по SSH перед установлением VNC-соединения. SSVNC поддерживается операционными системами Windows и Linux.
- Откройте клиент SSVNC и в главном окне клиента SSVNC заполните необходимые поля. В разделе VNC Host: Display введите SSHusername@remoteIPaddress:1. Замените SSHusername на имя пользователя, которое вы будете использовать для вашего SSH-соединения, и замените адрес удаленного IP-адреса на IP-адрес удаленного рабочего стола. Например, root@192.168.1.100:1.
- Убедитесь, что вы выбрали опцию Использовать SSH или SSL + SSL перед подключением. Когда вы будете готовы, нажмите кнопку Подключиться.
- Вас попросят ввести пароль SSH во всплывающем окне терминала. Введите пароль, затем нажмите клавишу ввода на клавиатуре.
Как только SSH-туннель будет активен, ваше VNC-соединение будет запущено, и должно появиться окно вашего VNC-клиента, где вы можете начать использовать удаленный рабочий стол.
Хотя соединения VNC по умолчанию не шифруются, собственный протокол удаленного рабочего стола Microsoft зашифрован. Если вы используете Windows и планируете подключиться к удаленному ПК или серверу Windows, вы можете подключиться с помощью инструмента «Подключение к удаленному рабочему столу».
Источник
Установка и использование VNC через SSH в Ubuntu 18.04
Установим окружение рабочего стола и VNC сервер
sudo apt update
sudo apt install xfce4 xfce4-goodies
sudo apt install tightvncserver
Для завершения инициализируем конфигурацию VNC сервера после установки.
Пароль должен быть не более 8 символов, пароль большей длины будет обрезан автоматически до первых 8 символов.
Конфигурация VNC сервера
Когда VNC настраивается первый раз, он запускает стандартный сервера на порту 5901. Этот порт называется портом отображения , на который ссылается VNC as :1 . VNC может запускать несколько экземпляров на других портах дисплея, как :2 , :3 и так далее.
Поскольку мы собираемся изменить настройки сервера VNC, сначала остановите экземпляр сервера VNC, который запущен на порту, 5901 с помощью следующей команды:
vncserver -kill :1
Команды в этом файле выполняются автоматически при каждом запуске или перезапуске сервера VNC. Нам нужен VNC, чтобы запустить нашу среду рабочего стола, если она еще не запущена. Добавьте эти команды в файл:
Первая команда в файле, xrdb $HOME/.Xresources сообщает инфраструктуре GUI VNC, чтобы прочитать .Xresources файл пользователя сервера . .Xresources где пользователь может вносить изменения в определенные настройки графического рабочего стола, такие как цвета терминалов, темы курсора и рендеринг шрифтов. Вторая команда сообщает серверу о запуске Xfce, в котором вы найдете все графическое программное обеспечение, необходимое для комфортного управления вашим сервером.
Чтобы гарантировать, что сервер VNC сможет использовать этот новый файл запуска правильно, нам нужно сделать его исполняемым.
Теперь перезапустите сервер VNC.
Вы увидите аналогичный результат:
Безопасное подключение настольного компьютера VNC
Сам VNC не использует безопасные протоколы при подключении. Мы будем использовать SSH-туннель для безопасного подключения к нашему серверу, а затем сообщим нашему клиенту VNC использовать этот туннель вместо прямого подключения.
Создайте соединение SSH на локальном компьютере, которое надежно перейдет к localhost соединению для VNC. Вы можете сделать это через терминал на Linux или macOS с помощью следующей команды:
-L Переключатель определяет привязки порта. В этом случае мы привязываем порт 5901 удаленного подключения к порту 5901 на вашей локальной машине. -C Переключатель позволяет сжимать, в то время как -N переключатель говорит , ssh что мы не хотим , чтобы выполнить удаленную команду. -l Переключатель указывает имя удаленного входа в систему .
Не забудьте заменить xakinfo your_server_ip с SUDO внекорневой имя пользователя и IP — адрес вашего сервера.
Если вы используете графический SSH-клиент, например PuTTY, используйте your_server_ip в качестве IP-соединения и установите localhost:5901 в качестве нового перенаправленного порта в настройках туннеля SSH программы.
Как только туннель запущен, используйте клиент VNC для подключения localhost:5901 . Вам будет предложено пройти аутентификацию, используя пароль, указанный на шаге 1.
Как только вы подключитесь, вы увидите рабочий стол по умолчанию Xfce. Он должен выглядеть примерно так:
Запуск VNC в качестве системного сервиса
Затем мы настроим сервер VNC как службу systemd, чтобы мы могли запускать, останавливать и перезапускать его по мере необходимости, как и любую другую услугу. Это также обеспечит запуск VNC при перезагрузке вашего сервера.
Сначала создайте новый единичный файл, который называется /etc/systemd/system/[email protected]
sudo nano /etc/systemd/system/[email protected]
@ Символ в конце имени позволит нам указать порт отображения VNC, который мы хотим использовать, когда мы управляем сервисом.
Добавьте в файл следующие строки. Обязательно измените значение User , Group , WorkingDirectory и имя пользователя в значении PIDFILE в соответствии с вашим именем пользователя:
Команда ExecStartPre останавливает VNC, если она уже запущена. Команда ExecStart запускает VNC и устанавливает глубину цвета в 24-битный цвет с разрешением 1280×800. Вы также можете изменить эти параметры запуска, чтобы удовлетворить ваши потребности.
Сохраните и закройте файл.
1 Следующая за @ знаком означает, какой номер дисплея службы должен появиться более, в этом случае по умолчанию , :1 как обсуждались в шаге 2 ..
Остановите текущий экземпляр сервера VNC, если он все еще запущен.
Затем запустите его, чтобы запустить любую другую службу systemd.
Вы можете убедиться, что она началась с этой команды:
Если все сделали правильно, вывод должен выглядеть следующим образом:
Теперь ваш VNC-сервер будет доступен при перезагрузке компьютера.
Запустите свой туннель SSH снова:
Затем создайте новое соединение, используя ваше клиентское программное обеспечение VNC, чтобы подключиться к вашей машине по localhost:5901.
Заключение
Теперь у вас есть защищенный сервер VNC запущенный на вашем сервере под Ubuntu 18.04. Теперь вы сможете управлять своими файлами, программным обеспечением и настройками с помощью простого в использовании и знакомого графического интерфейса и вы сможете удаленно запускать графическое программное обеспечение, например, веб-браузеры.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник