SSH для простых смертных
В сети много документов по настройке удалённого управления в Линукс и БСД-системах, но часто в них умалчиваются простые (после прокуривания мануалов и гуглежа) вещи. Именно о них я расскажу в этом посте — может быть, кому поможет…
Установка SSH в Линукс на примере Debian(Ubuntu)
Итак, всё, что нам нужно для установки полного комплекта удалённого управления компьютером (клиент и сервер) давным-давно лежит в репозитории. Лёгким движением ставим пакет:
# apt-get install ssh
и ждём несколько мгновений, когда оно настроится.
На стороне клиента
Теперь надо поправить настройки, которые лежат в каталоге /etc/ssh — конфиг для клиента называется ssh-config, конфиг для сервера, соответственно, sshd-config. На своей, клиентской, стороне, настраиваем возможность приёма X11Forward, ищем и меняем ключи на:
......
ForwardX11 yes
ForwardX11Trusted yes
...........
Клиентская машина теперь может запускать удалённо графические приложения на сервере.
В принципе, можно на клиентской стороне ничего не менять, а логиниться на удалённую машину так:
$ 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-соединения, будут выдаваться служебные сообщения запускаемых вами приложений.
[b]Заключение[/b]
Ну вот, как выясняется, удалённое соединение и работа может быть полезна и простым смертным, а не только бородатым админам. Очень удобно, например, быстренько влезть на компьютер коллеги и помочь ему в чём-то (прочитать логи, например), тихо и незаметно поставить софт, просто загрузить чем-то полезным простаивающую машину. В общем, много применений.
Большое спасибо virens и блогу — Записки Дебианщика
Читаем еще:
- Ssh server для простых смертных (безопасное использованию сервера OpenSSH)
- SSH для простых смертных (возможности SSH)
- SSH для простых смертных (авторизация по ключу)
- Установка и настройка сервера на базе Debian Etch 4.0
- Апплет для панели Gnome — SSH меню