Васильев Андрей Михайлович, 2024
Версии презентации
SSH (Secure Shell, «безопасная оболочка») — это протокол удалённого управления компьютера с ОС семейства Linux
Существует несколько реализаций SSH-сервера, рассмотрим наиболее популярное и проверенное решение — сервер OpenSSH
В операционных системах Альт данный сервер поставляется в пакете
openssh-server
После установки данного пакета службу сервера неолбходимо запустить:
systemctl enable --now sshdОбратите внимание, что служба называется не также как и пакет
Клиентские приложения поставляются в пакете openssh-clients
Для выполнения подключения к удалённому серверу с целью получения интерактивного
доступа следует воспользоваться приложением ssh
В самой простейшей форме подключение будет выглядеть следующим образом:
ssh hostгде host — это IP-адрес или доменное имя сервера, к которому выполняется
подключение
По умолчанию предполагается, что имя пользователя на удалённом сервере совпадает с именем текущего пользователя
Для явного указания удалённого имени используйте форму
ssh user@hostПриложение ssh поддерживает множество разных функций, которые доступны через множество аргументов, рассмотрим некоторые из них
ssh [-p port] destination [command [argument ...]]По умолчанию сервер ожидает подключения по порту 22, но в некоторых ситуациях он может быть запущен (или доступен) по другому порту
ssh -p 2022 user@localhostЕсли не указать команду для запуска на удалённом сервере, то на сервере будет запущен, если доступен, интерактивный интерпретатор команд
Когда он завершит свою работу (по вводу команды exit, например), будет
завершено и ssh-соединение
OpenSSH-сервер поддерживает множество вариантов по выполнению аутентификации:
Рассмотрим наиболее часто применяемые: по паролю и по ключу пользователя
~/.sshВ протоколе SSH используется ассиметричное шифрование, для которого применяется пара из:
Для создания ключей использутеся приложение ssh-keygen:
ssh-keygen -t ed25519Далее будут заданы вопросы о местоположении и пароля
~/.sshВ результате работы команды будут созданы файлы:
id_ed25519 — секретный ключ, который нельзя никому передаватьid_ed25519.pub — публичный ключ, который передаётся на серверНа сервере необходимо установить публичную часть ключа, чтобы выполнить аутентификацию пользователя
Это делается путём копирования содержимого публичного ключа в список
авторизованных ключей. Обычно этот файл находится по пути
~/.ssh/authorized_keys
Файл можно передать путём копирования файла, использования текстового редактора
и буфера обмена или с помощю приложения ssh-copy-id:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.168.122.9Необходимо будет пройти настроенную аутентификацию (по паролю или другому ключу)
Ключи, защищённые паролём, безопаснее беспарольных альтернатив, но требуют постоянного ввода пароля
Ключи можно загрузить в специальную службу ssh-agent, введя пароль от ключа, чтобы затем ssh-клиент считывал их из службы, а не с файловой системы
Для загрузки ключа в агент используется приложение ssh-add:
ssh-add [file ...]~/.sshЕсли необходимо выполнять подключения к разным системам с разнородными параметрами, то их удобно единожды зафиксировать в конфигурационном файле
Рассмотрим пример файла ~/.ssh/config:
Host playground
HostName 127.0.0.1
Port 2022
User user
IdentityFile ~/.ssh/playground-keyТогда для подключения к данному серверу достаточно будет выполнить:
ssh playgroundВместо:
ssh -i ~/.ssh/playground-key -p 2022 user@127.0.0.1Конфигурация сервера OpenSSH в ОС семейства Альт находится по пути
/etc/openssh/sshd_config, а его описание находится в 5-м разделе руководства
Процесс редактирования сервера sshd надо выполнять аккуратно, т.к. некорректная конфигурация потребует наличия альтернативного способа подключения к серверу, что зачастую затруднено или дорого
Процесс редактирования:
sshd -tsystemctl reload sshd перезагрузите конфигурационный файлPermitRootLogin noЗапрещает аутентификацию пользователя root, рекомендуемая настройка
AllowUsers studentРазрешает доступ только пользователю student, все другие пользователи не смогут подключиться.
AllowGroups wheel sshРазрешает доступ только пользователей, входящих в одну из групп wheel или
ssh
Альт предоставляет инструмент control с помощью которого можно выполнять
настройку политик безопасности: разрешать или запрещать выполнять различные
операции
Данный инструмент позволяет настраивать следующие политики:
sshd-password-auth — разрешить или запретить аутентификацию по паролюsshd-allow-groups — включить список групп, которым разрешён доступНапример для отключения аутентификации по паролю:
control sshd-password-auth disabledsystemctl restart sshd