В сети много документов по настройке SSH для удалённого управления Linux, но часто в них умалчиваются простые вещи. В этом посте я покажу очевидные вещи, которые лежат по сути на поверхности.
Установка SSH в Linux на примере Debian
Итак, всё, что нам нужно для установки полного комплекта удалённого управления компьютером (SSH-клиент и SSH-сервер) давным-давно лежит в репозитории. Лёгким движением ставим пакет:
и ждём несколько мгновений, когда оно настроится (при наличии доступа в интернет разумеется).
После этого мы получим возможность SSH доступа в систему и управления ей. Так как технология эта кросс-платформенная, то можно управлять по SSH Linux или FreeBSD можно и из Windows. Для этого есть putty.
На стороне клиента
Теперь надо поправить настройки, которые лежат в каталоге /etc/ssh — конфиг для клиента называется ssh-config, конфиг для сервера, соответственно, sshd-config. На своей, клиентской, стороне, настраиваем возможность приёма X11Forward, ищем и меняем ключи на:
ForwardX11Trusted yes
Клиентская машина теперь может запускать удалённо графические приложения на сервере. Настройка SSH на стороне клиента закончена, теперь идём к админу далёкого сервера…
На стороне сервера
Теперь нужно настроить SSH сервер: в конфигах машины-сервера, к которой будем подсоединяться (у вас ведь есть её рутовый пароль, так ведь?) в /etc/ssh/sshd-config ищем и меняем ключи на:
X11DisplayOffset 10
X11UseLocalhost yes
Этим мы разрешаем серверу запускать удалённо графические приложения и отправлять их на клиентскую машину. Перестартуем сервис:
Теперь мы сможем заходить на машину не только в консольном режиме, но и с запуском иксовых приложений.
Если хочется разрешить вход только с определённых машин, нужно подправить строки в конфиге /etc/ssh/sshd_config
AllowUsers *@192.168.1.*
Обязательно вместо пробела используем Tab вместо пробела.
Если необходимы для удаленного клиента права sudo
То:
1.Создать пользователя + скелетные директории
2. Нужно сначала установить sudo
3. Назначить права пользователю
SSH в действии
Всё готово, и теперь я приведу несколько команд SSH для примера. Открываем putty и пишем в ней:
Запуск графических приложений удалённо
Вводим, как обычно, логин и пароль удалённой машины. И вот перед нами та же самая консоль. Как вызвать графическое приложение? Просто наберите имя вызываемой программы и поставьте после имени знак амперсанд:
Это запустит на удалённой машине GiMP в фоне и вернёт вам консоль для дальнейших действий. Если вы не поставите амперсанд после имени приложения, то управление в консоль будет возвращено только после завершения приложения.
Итак, у вас запустится графическое приложение точно так же, как если бы оно работало у вас. Есть одно но: это приложение будет работать на вашем экране, но с документами и настройками удалённой машины. Если файл для обработки находится в вашем домашнем каталоге, то его нужно будет передать на удалённую машину. Оно (и другие приложения, которые вы запустите) будет работать ровно до того момента, пока открыто ssh-соедиение. Туда же, в консольку ssh-соединения, будут выдаваться служебные сообщения запускаемых вами приложений.
Полезные ссылки:
Создание пользователя и SSH ключей
Как создать пользователя в Debian с доступом по SSH только в одну папку?
Как добавить пользователя в Sudoers в Ubuntu
Можно ли разрешить или запретить доступ по SSH определенному пользователю или группе?
Как установить правильные права доступа к каталогам SSH на Linux