Клиентская машина теперь может запускать удалённо графические приложения на сервере.
В принципе, можно на клиентской стороне ничего не менять, а логиниться на удалённую машину так:
$ ssh -X user@server1.mydomain.com
или
$ ssh -X user@192.168.x.x
это по желанию или когда в конфиги на своей стороне не хочется лезть
Теперь идём к админу далёкого сервера...
На стороне сервера
В конфигах машины-сервера, к которой будем подсоединяться (у вас ведь есть её рутовый пароль, так ведь?) в /etc/ssh/sshd-config ищем и меняем ключи на:
........
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
........
Этим мы разрешаем серверу запускать удалённо графические приложения и отправлять их на клиентскую машину.
Перестартуем сервис:
sudo /etc/init.d/ssh restart
Теперь мы сможем заходить на машину не только в консольном режиме, но и с запуском иксовых приложений.
Если хочется разрешить вход только с определённых машин, нужно подправить строки в конфиге /etc/ssh/sshd_config
AllowUsers hacker@*
AllowUsers *@192.168.1.*
Впрочем, это уже для более продвинутых товарищей и тему безгласности рассмотрим в другой части
SSH в действии
Всё готово, и теперь открываем консоль и пишем в ней
$ ssh имя_пользователя_удалённой_машины@ip_адрес_или_сетевое_имя_удалённой_машины
Например, в моём случае, я хожу по IP, пишу ssh ceval@192.168.1.10 .
После этого нас могут спросить: данный айпишник ещё не опознан, как доверительный, стоит ему доверять? Пишем yes, стоит, конечно! :-).
Далее вводим пароль пользователя удалённой машины, под которым мы заходим и, если он правильный, попадаем в консоль удалённой машины. В процессе набора пароля вы его не увидите - набирайте всё равно; даётся три попытки - потом соединение обрывается.
Итак, нас поприветствуют как-то вроде этого:
Linux srvubu 2.6.15-27-server #1 SMP Sat Sep 16 02:57:21 UTC 2006 i686 GNU/Linux
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
You have mail.
Last login: Wed Feb 14 13:59:14 2007 from ХХХХХХХХХХХХ
ceval@srvubu:~$
Теперь, в окошке терминала, который на нашей машине, мы рулим компьютером, к которому мы подключились. Не перепутайте терминалы, а то вырубите не тот компьютер :-). Здесь всё просто и логично, но нам бы хотелось ещё и запускать графические приложения на удалённой системе. Легко!
Запуск графических приложений удалённо
Вводим, как обычно, логин и пароль удалённой машины. И вот перед нами та же самая консоль. Как вызвать графическое приложение? Просто наберите имя вызываемой программы и поставьте после имени знак амперсанд:
$ nautilus&;
Это запустит на удалённой машине Nautilus в фоне и вернёт вам консоль для дальнейших действий. Если вы не поставите амперсанд после имени приложения, то управление в консоль будет возвращено только после завершения приложения.
так, у вас запустится графическое приложение точно так же, как если бы оно работало у вас. Есть одно но: это приложение будет работать на вашем экране, но с документами и настройками удалённой машины. Если файл для обработки находится в вашем домашнем каталоге, то его нужно будет передать на удалённую машину. Оно (и другие приложения, которые вы запустите) будет работать ровно до того момента, пока открыто ssh-соедиение. Туда же, в консоль ssh-соединения, будут выдаваться служебные сообщения запускаемых вами приложений.
Заключение
Ну вот, как выясняется, удалённое соединение и работа может быть полезна и простым смертным, а не только бородатым админам. Очень удобно, например, быстренько влезть на компьютер коллеги и помочь ему в чём-то (прочитать логи, например), тихо и незаметно поставить софт, просто загрузить чем-то полезным простаивающую машину. В общем, много применений.
Большое спасибо virens и блогу - Записки Дебианщика
Комментариев: 2
Это интересная возможность ssh, вот только возникает вопрос: а как запустить графическое приложение с отображением именно на удаленном компьютере?
Это возможно при использовании систем удалённого доступа к рабочему столу, например VNC или rdesktop.