Дек 192018
 

В сети много документов по настройке SSH для удалённого управления Linux, но часто в них умалчиваются простые вещи. В этом посте я покажу очевидные вещи, которые лежат по сути на поверхности.

Установка SSH в Linux на примере Debian
Итак, всё, что нам нужно для установки полного комплекта удалённого управления компьютером (SSH-клиент и SSH-сервер) давным-давно лежит в репозитории. Лёгким движением ставим пакет:

apt-get install ssh

и ждём несколько мгновений, когда оно настроится (при наличии доступа в интернет разумеется).
После этого мы получим возможность SSH доступа в систему и управления ей. Так как технология эта кросс-платформенная, то можно управлять по SSH Linux или FreeBSD можно и из Windows. Для этого есть putty.

На стороне клиента
Теперь надо поправить настройки, которые лежат в каталоге /etc/ssh — конфиг для клиента называется ssh-config, конфиг для сервера, соответственно, sshd-config. На своей, клиентской, стороне, настраиваем возможность приёма X11Forward, ищем и меняем ключи на:

ForwardX11 yes
ForwardX11Trusted yes

Клиентская машина теперь может запускать удалённо графические приложения на сервере. Настройка SSH на стороне клиента закончена, теперь идём к админу далёкого сервера…

На стороне сервера
Теперь нужно настроить SSH сервер: в конфигах машины-сервера, к которой будем подсоединяться (у вас ведь есть её рутовый пароль, так ведь?) в /etc/ssh/sshd-config ищем и меняем ключи на:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Этим мы разрешаем серверу запускать удалённо графические приложения и отправлять их на клиентскую машину. Перестартуем сервис:

/etc/init.d/ssh restart

Теперь мы сможем заходить на машину не только в консольном режиме, но и с запуском иксовых приложений.
Если хочется разрешить вход только с определённых машин, нужно подправить строки в конфиге /etc/ssh/sshd_config

AllowUsers hacker@*
AllowUsers *@192.168.1.*

SSH в действии
Всё готово, и теперь я приведу несколько команд SSH для примера. Открываем putty и пишем в ней:

$ ssh имя_пользователя_удалённой_машины@ip_адрес_или_сетевое_имя_удалённой_машины

Запуск графических приложений удалённо
Вводим, как обычно, логин и пароль удалённой машины. И вот перед нами та же самая консоль. Как вызвать графическое приложение? Просто наберите имя вызываемой программы и поставьте после имени знак амперсанд:

$ gimp &;

Это запустит на удалённой машине GiMP в фоне и вернёт вам консоль для дальнейших действий. Если вы не поставите амперсанд после имени приложения, то управление в консоль будет возвращено только после завершения приложения.
Итак, у вас запустится графическое приложение точно так же, как если бы оно работало у вас. Есть одно но: это приложение будет работать на вашем экране, но с документами и настройками удалённой машины. Если файл для обработки находится в вашем домашнем каталоге, то его нужно будет передать на удалённую машину. Оно (и другие приложения, которые вы запустите) будет работать ровно до того момента, пока открыто ssh-соедиение. Туда же, в консольку ssh-соединения, будут выдаваться служебные сообщения запускаемых вами приложений.