Home > Shell, Tips, Unix, общее, Программирование, Техноблог > Удаленный рабочий стол. UNIX-way :)

Удаленный рабочий стол. UNIX-way :)

August 6th, 2007 Leave a comment Go to comments

Как всегда, существует уйма способов запускать графические программы удаленно. Не все из них основаны на туннелинге X-трафика, но именно с ним играться интересней всего.

Приступим :)

Собственно, на практике страшная фраза “сделать туннелинг Х-протокола” обозначает, что нужно добавить опцию X к ssh. Получается, что в простейшем случае запустить удаленную графическую программу можно так:
ssh -X user@host firefox

Kdesktop от других программ ничем не отличается:
ssh -X user@host kdesktop

Удаленный или локальный десктоп? Вот в чем вопрос.
Неудобство последней команды как способа удаленного входа заключается в том, что в случае, если какая-либо оболочка уже запущена, то неизбежны конфликты и долгие раздумья на тему принадлежности какого-нибудь окошка удаленной или локальной машине. Поэтому все что нужно сделать – это использовать подобную команду вместо оболочки.

Я это сделал так:
xinit /usr/bin/ssh -X user@host startkde -- :1
Набирать команду следует из обычной, неиксовой консоли (Ctrl-Alt-F1), и работать она будет только в случае, если на удаленной машине уже лежит наш публичный ключик, т.к. не будет возможности ввести пароль. (что такое публичный ключ). Полный путь к ssh на некоторых дистрибутивах обязателен.

Теперь сочетанием клавиш Ctrl-Alt-F7 и Ctrl-Alt-F9 можно переключаться между локальным и удаленным рабочим столом (хотя F9 для удаленной машины – это лично у меня, у вас может быть также F8 или F10). Да, и делать это лучше только если соединение между машинами быстрое, иначе нервных расстройств не избежать :)

Этот пост написан с рабочего десктопа, но через ноутбучную оперу :)

А что интересного с помощью ssh удавалось сделать вам?

UPD через 20 мин: Отправил ноутбук в ребут и через некоторое время понял, что работаю на удаленной машине. 5 секунд паники, 10 – на сохранение и минута чтобы понять, что я ошибся :) Вобщем, для людей со слабым сердцем не рекомендую так работать, а сам я теперь осторожен, как сапер на минном поле :)

  1. MCJoan
    August 14th, 2007 at 00:51 | #1

    Интересно, а на маках такое есть?

  2. B’LokE
    August 14th, 2007 at 18:35 | #2

    Большое спасибо. вы просто Бог ssh-a :)

  3. September 1st, 2007 at 11:32 | #3

    ssh -X можно и не использовать, если в настройках прописан XForwarding. У меня про это было: http://mydebianblog.blogspot.com/2006/12/ssh.html

    P.S. Спасибо за интересный ресурс, унёс фид к себе.

  4. Alexey Sveshnikov
    September 1st, 2007 at 12:16 | #4

    virens, не согласен, что это хорошая идея.
    Мне туннелирование X-сокета нужно в одном случае из ста. Во всех остальных случаях – это бесполезная трата времени при открытии сеанса и очередной компромисс с безопасностью.

  5. September 3rd, 2007 at 15:04 | #5

    Когда на ноутбуке экран был больше, чем на настольной машине с колонками, я запускал mplayer по ssh оставляя звук на колонках, а картинку перебрасывая на большой (относительно) моник ноута =)

  6. oermolaev
    December 1st, 2010 at 18:22 | #6

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

  7. daemon66
    December 18th, 2010 at 20:22 | #7

    Имеется
    $ cat ~/.xinitrc
    xinit /usr/bin/ssh -X user@host gnome-session — :1
    $ startx
    все замечательно работает, – вычисления удаленно, картинка локально. Но вот незадача, как мне выключить локальный комп – выбираю выключить комп или завершение сеанса, рабочий стол завершает работу, но графическая система остается, т.е. даже в консоль не выпадает, надо топать на Ctrl+Alt+F1 (или откуда стартовал startx) и Ctrl+C прибивать – как такое побороть, чтобы было все ровно и гладко для конечных пользователей, ну и в идале чтоб и комп выключался?
    и еще вопрос, где копаться чтобы сделать так: включает пользователь комп, ему выскакивает окно авторизации удаленного компа уже, т.е. идея в чем: на локальном компе ставим минимальную систему + xinit со всеми зависимостями (а если и без харда то можно и по сетке это дело грузить), а в X Window работает уже с сервера

  1. No trackbacks yet.