Как запустить приложение с графическим интерфейсом через SSH?

10

Я привык работать на Unix / Linux и недавно перешел на Mac. В раньше можно было сделать это:

derick@linux1:~$ ssh -X linux2
derick@linux2's password:
derick@linux2:~$ xclock

Я установил X11 из maxports, и я могу сделать то же самое с моего Mac. Если я попробую обратное, введя ssh в свой mac из linux, я смогу запустить только определенные приложения:

  • /usr/X11/bin/xclock работает отлично
  • Нечто подобное /Applications/Preview.app/Contents/MacOS/Previewоткрывает графический интерфейс на Mac.

    Кажется, что это невозможно на Mac? Если нет, то как мне запустить приложение удаленно (на mac) с локальным дисплеем (linux)? Нужно ли какое-нибудь стороннее приложение?

Обновление: если быть более точным: у меня есть синергия и я использую Mac для кодирования. На моем компьютере с Linux я бы хотел увидеть дисплей другого приложения (GUI) от Mac. Таким образом, приложения для совместного использования экрана, такие как VNC, работать не будут.

Например, я работаю на своем Mac в приложении A (скажем, Word) и хочу увидеть вывод Excel (работающий на Mac) на моем компьютере с Linux рядом со мной. (Имитация двойного экрана через сеть). Это хорошо работало на Linux, надеясь на решение для Mac.

Дерик Шунби
источник
Если через SSH нет решения, меня это тоже заинтересует. Проблема в том, что я хочу запустить локальное отображение приложения на ПК через сеть рядом со мной, как я это делал в linux.
Дерик Шунби,
Могу ли я спросить, почему вы хотите избежать VNC? Проблемы с задержкой в ​​сети?
Николас Смит
Сейчас я работаю на Mac, поэтому экран «занят». Я хочу запустить другое приложение на Mac с выводом на ПК рядом со мной. Как я сделал с Linux. Надеемся увидеть решение на Mac.
Дерик Шунби
Кстати, вам не нужно устанавливать X11 с помощью macports ... X11 поставляется с OS X.
Yuji
Ах, да, значит, ваше возражение против VNC связано не с какими-либо проблемами с VNC, а из-за ограничений экрана?
Николас Смит

Ответы:

9

Так что, если я не ошибаюсь, проблема, с которой вы столкнулись в настоящее время в VNC, заключается в том, что он разделяет экран текущего пользователя Mac с открытыми приложениями, которые вы не хотите видеть на своем другом компьютере? Lion представляет возможность показывать пользователям, которые вошли в фоновом режиме . Цитирую текст по ссылке:

  • Включить общий доступ к экрану и установить пароль VNC.
  • Запишите IP-адрес вашего компьютера.
  • Запустите клиент VNC на другом компьютере.
  • Подключитесь к IP-адресу вашего компьютера вместе с паролем, который вы установили ранее.
  • Вы увидите экран входа в Mac OS X, который появляется при первом запуске компьютера. Если вы войдете в систему в настоящий момент активный пользователь, вы будете управлять экраном компьютера. Если вы выберете другого пользователя, вы войдете на рабочий стол этого пользователя в фоновом режиме. Это не повлияет на то, что видно на экране физического компьютера.

Скорее всего, вам просто нужно создать другого пользователя для обмена.

cftarnas
источник
Отлично, похоже, это то, чего я хочу! Теперь у меня есть другая мотивация, чтобы перейти на Lion . Я скоро проверю и, вероятно, приму это как ответ. Благодаря!
Дерик Шунби,
Черт, я только что обновился, и я получаю экран входа через VNC. Но он не хочет брать мою клавиатуру погладил. Таким образом, я не могу войти :(
Дерик Шунби
Это очень странно - какой клиент VNC вы используете?
cftarnas
17

Нативное приложение Mac OS X не использует протокол X для рендеринга, но специальный протокол Mac. Таким образом, вы не можете использовать пересылку по протоколу ssh X так же, как на рабочей станции Linux.

Как вы обнаружили, обратное неверно, вы можете установить X-сервер на Mac OS X, и на вашем Mac появится программа Linux.

То, что вы можете сделать, это использовать собственный Mac для совместного использования рабочего стола или установить сервер VNC. Затем из вашего Linux-бокса вы подключаетесь к Mac через VNC вместо ssh.

Сильвен Дефресн
источник
Спасибо за информацию. Что я хочу знать, если есть какие-то аналогичные функции, которые я могу использовать на Mac. Например, могу ли я использовать средство общего доступа к рабочему столу из linux1, когда я работаю / захожу на свой Mac?
Дерик Шунби,
Да, вы можете запустить VNC-сервер в Linux и подключить его с Mac с помощью VNC-клиента (на Mac есть несколько бесплатных VNC-клиентов и бесплатный VNC-сервер в Linux).
Сильвен Дефресн
Хм .. VNC не обрезает его: я работаю над своим Mac в приложении A (скажем, Word) и хочу увидеть вывод Excel (работающий на Mac) на ПК с Linux рядом со мной.
Дерик Шунби,
Как объяснила Сильвен, это невозможно на Mac. Базовая архитектура ОС не позволяет использовать этот тип.
Сэмюэль Микел Боулз
3
Смотрите мой ответ, но с Lion это возможно, если вы используете другого пользователя на Mac для сеанса VNC.
cftarnas
7

Как упомянул Сильвиан, вы не можете запускать приложения Mac и отображать их в Linux. Лучшее, что вы можете сделать, это VNC. Вы увидите весь экран, а не только одно приложение.

Включить пароль VNC в настройках общего доступа к экрану:

Настройки общего доступа к экрану

Затем вы можете использовать любое клиентское приложение VNC в Linux.

bahamat
источник
0

Вам немного не повезло, но ScreenRecycler подберет вас как можно ближе. Работает через VNC, но убеждает OS X, что соединение VNC на самом деле является отдельным монитором, оно должно позволить вам приблизиться к тому, что вам нужно. Я использовал это, это довольно хорошо, есть бесплатная пробная версия, то это довольно дешево. Я перестал использовать его только потому, что был в дрянной сети, и было слишком много задержек, если я не связывал их напрямую.

Николас Смит
источник
0

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

Вот мое приложение Java.

Эрик Б
источник