Как мне получить доступ к моему удаленному серверу Ubuntu через X-windows с моего Mac?

35

У меня есть сервер Ubuntu (12.04 LTS), работающий удаленно на облачном хостинге. Я установил ubuntu-desktopчерез apt-get:

$ sudo apt-get install ubuntu-desktop

Похоже, что установили без проблем.

Я подтвердил, что /etc/ssh/ssh_configна сервере содержатся строки

ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes

и что /etc/ssh/sshd_configна сервере содержится строка:

X11Forwarding yes

Затем я перезагрузил сервер. Это вернулось без проблем.

Теперь, запуская X11.app на моем Mac, я представляю Xterm.

Я подключаюсь к своему серверу с этого терминала, используя:

$ ssh -X <myhost>

и я подключаюсь к серверу, без проблем.

На данный момент я не знаю, что делать. я пытался

$ sudo startx

но я получаю ошибку "не найдены экраны".

У меня нет экранов, потому что это безголовый облачный сервер, но я просто хочу получить доступ к нему с моего Mac через X.

Что теперь?

Magooda
источник
2
Попробуйте установить xvfb. Я не имел опыта с этим, но он действует как экран без аппаратного обеспечения.
ζ--

Ответы:

21

Есть несколько методов для достижения этой цели, в зависимости от того, что вам действительно нужно сделать.

Чтобы перенаправить удаленные приложения в локальную среду X, вам нужно установить X11 на вашем Mac (вы можете найти его на сайте поддержки Apple): http://support.apple.com/kb/DL1605?viewlocale=en_US&locale=en_US

Из приложения X11 откройте терминал, а затем получите доступ к удаленному хосту с помощью:

    ssh -XC user@host

Затем, войдя в систему, просто запустите команду для нужного приложения, например: firefox, nautilus, thunderbird, что угодно ...

Вы даже можете запустить только главное меню системы (Ubuntu, Xubuntu, Mint и т. Д.) И взаимодействовать с удаленной системой оттуда, без необходимости полного графического интерфейса. В удаленной среде Linux Mint я просто запускаю:

    mintmenu&

Если вам это действительно нужно, вы даже можете запустить удаленную графическую среду локально на своем Mac X11, просто запустив:

    ubuntu-session
    xubuntu-session
    etc... (depends of your remote environment)

Лучше, чем любой VNC, даже лучше, чем соединение X11VNC! Безопасное и сжатое соединение FTW.

undertuga
источник
7

На вашем Mac вам необходимо установить XQuartz, если вы еще этого не сделали (см. Http://xquartz.macosforge.org ). После установки перезагрузите компьютер и откройте окно терминала XQuartz и SSH для своей системы Ubuntu Server:

ssh -X yourubuntuserver

Если lightdm работает (см. Https://askubuntu.com/a/153423/66799, чтобы узнать, как включать и выключать его при необходимости), выполните эту команду, чтобы Ubuntu Unity туннелировали на ваш Mac через X11:

gnome-session --session=ubuntu-2d

Это работает для меня с Ubuntu Server 12.04 LTS и Mac OS X Mountain Lion 10.8.2, но я иногда получаю ошибки Composiz. Тем не менее, я всегда получаю ошибки Composiz при локальном запуске Ubuntu Desktop. (-:

Вы можете выйти из Unity, чтобы закрыть окна Ubuntu Desktop.

Стив ХХХ
источник
Это работает, XQuartx необходим.
SmallChess
Отлично работает на Windows 10 в WSL с Xming для отображения.
Суровые
-1

У вас правильная идея, но неправильный синтаксис :)

startxне будет начинаться sshтак, потому что ему нужен экран (или Xсервер, с которым можно общаться)

попробуйте эту команду для запуска графического интерфейса рабочего стола

sudo service gdm start

это запустит среду рабочего стола.

Отключить.

и попробовать

ssh -X nautilus username@host 

примечание не проверялось выше строки

Если все работает нормально, вы должны увидеть всплывающее окно файлового менеджера Ubuntu. Если нет, возможно, вам не хватает некоторых библиотек или синтаксис команды неправильный (в верхней части моей головы не пробовал).

Мэтт Моотц
источник
4
Там нет необходимости (или причины), чтобы бежать sudo service gdm start. В X - сервер работает на SSH клиент --the машина используется в качестве рабочей станции. Он не должен быть запущен на удаленной машине для ssh -Xработы.
Элия ​​Каган
Ах, я не знал об этом, спасибо за информацию.
Мэтт Моотц