Недавно слышал от друзей то, что ssh можно запустить с поддержкой графической оболочки. Немного погуглив вышел на статью и поэтому решил выложить у себя в блоге. Особое спасибо автору данной статьи В сети много документов по настройке SSH
для удалённого управления Linux и BSD-системах, но часто в них
умалчиваются простые вещи. В этом посте я расскажу о простом
использовании клиента SSH и настройке удалённого доступа.
Установка SSH в Linux на примере Debian Итак, всё, что нам нужно для установки полного комплекта удалённого управления компьютером (SSH-клиент и SSH-сервер) давным-давно лежит в репозитории. Лёгким движением ставим пакет:
# apt-get install ssh
и ждём несколько мгновений, когда оно настроится. После этого мы получим возможность SSH
доступа в систему и управления ей. Так как технология эта
кросс-платформенная, то можно управлять по SSH Linux или FreeBSD можно и
из Windows. Для этого есть putty, SSH Windows клиент.
На стороне клиента Теперь
надо поправить настройки, которые лежат в каталоге /etc/ssh - конфиг
для клиента называется ssh-config, конфиг для сервера, соответственно,
sshd-config. На своей, клиентской, стороне, настраиваем возможность
приёма X11Forward, ищем и меняем ключи на:
ForwardX11 yes ForwardX11Trusted yes
Клиентская машина теперь может запускать удалённо графические приложения на сервере. Настройка SSH на стороне клиента закончена, теперь идём к админу далёкого сервера... В принципе, можно на клиентской стороне ничего не менять, а логиниться на удалённую машину так:
$ ssh -X user@server1.mydomain.com
или
$ ssh -X user@192.168.x.x
если лезть в конфиги на своей стороне не хочется, но у меня это почему-то не работало...
На стороне сервера Теперь
нужно настроить SSH сервер: в конфигах машины-сервера, к которой будем
подсоединяться (у вас ведь есть её рутовый пароль, так ведь?) в
/etc/ssh/sshd-config ищем и меняем ключи на:
Например,
в моём случае, когда я захожу удалённо на ноутбук, пишу ssh
beast@192.168.1.5 - так как у меня не настроен сервер имён, пишу адреса.
Опять-таки, доступ по SSH может быть не только из Linux или FreeBSD, но
и из Windows - при помощи putty.
После этого нас могут спросить:
данный айпишник ещё не опознан, как доверительный, стоит ему доверять?
Пишем yes, стоит, конечно! :-) Далее вводим пароль пользователя
удалённой машины, под которым мы заходим и, если он правильный, попадаем
в консоль удалённой машины. В процессе набора пароля вы его не увидите - набирайте всё равно; даётся три попытки - потом соединение обрывается.
Итак, нас поприветствуют как-то вроде этого:
penta4@penta4rce:~$ ssh beast@192.168.1.5 Password: Linux notebeast 2.6.15.7 #3 PREEMPT Sun Jul 2 12:51:07 MSD 2006 i686 GNU/Linux The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
Last login: Tue Oct 10 19:23:57 2006 from 192.168.1.1 beast@notebeast:~$
Теперь,
в окошке терминала, который на нашей машине, мы рулим компьютером, к
которому мы подключились. Не перепутайте терминалы, а то вырубите не тот
компьютер :-) Здесь всё просто и логично, но нам бы хотелось ещё и
запускать графические приложения на удалённой системе. Легко!
Запуск графических приложений удалённо Вводим, как обычно, логин и пароль удалённой
машины. И вот перед нами та же самая консоль. Как вызвать графическое
приложение? Просто наберите имя вызываемой программы и поставьте после
имени знак амперсанд:
$ gimp &;
Это запустит на удалённой
машине GiMP в фоне и вернёт вам консоль для дальнейших действий. Если
вы не поставите амперсанд после имени приложения, то управление в
консоль будет возвращено только после завершения приложения.
На
приведённом скриншоте: слева gimp, запущенный на "родной" машине, справа
- на удалённой. Кнопочки чуть разные из-за того, что на удалённой
машине другие настройки gimp. В остальном - как родной.
Итак, у вас запустится графическое приложение точнотак же, как если бы оно работало у вас. Есть одно но: это приложение будет работать на вашем экране, но с документами и настройками удалённой
машины. Если файл для обработки находится в вашем домашнем каталоге, то
его нужно будет передать на удалённую машину. Оно (и другие приложения,
которые вы запустите) будет работать ровно до того момента, пока
открыто ssh-соедиение. Туда же, в консольку ssh-соединения, будут
выдаваться служебные сообщения запускаемых вами приложений.
Заключение Ну
вот, как выясняется, удалённое соединение и работа по SSH может быть
полезна и простым смертным, а не только бородатым админам. Очень удобно,
например, быстренько влезть на компьютер коллеги и помочь ему в чём-то
(прочитать логи, например), тихо и незаметно поставить софт, просто
загрузить чем-то полезным простаивающую машину. В общем, много
применений.
Так как пост делался с упором на простого
пользователя, тут не рассматривается шифрованное копирование файлов и
прочие тонкости. Они есть тут на русском вместе с более кратким описанием настройки SSH, а ещё очень подробная статья с nixp. Хорошая справка (правда, на английском) здесь и тут. Думаю, что этого хватит.