Linux#
Для подключения к целевому узлу под управлением операционной системы Linux рекомендуется использовать протокол SSH. Для этого на узле должен быть установлен серверный пакет OpenSSH. Если этого компонента нет или он не настроен, воспользуйтесь соответствующей инструкцией в зависимости от дистрибутива Linux:
Примечание
ВМ, созданные из образов Astra Linux UBI, уже содержат установленный и активированный сервер OpenSSH.
SSH позволяет авторизоваться на узле различными способами, но чаще всего используются следующие два:
пароль;
ключи SSH (далее – ключи).
Рекомендуемым способом авторизации является использование ключей. Для этого необходимо создать пару ключей – приватный и публичный. Приватный ключ необходимо оставить на управляющем узле, а публичный разместить на управляемых узлах.
Приведенные далее инструкции описывают процесс настройки для Astra Linux Special Edition, но большинство шагов можно использовать и для других операционных систем.
Генерация ключей#
Для создания пары ключей выполните следующие действия (обычно на управляющем узле):
При необходимости создайте каталог
~/.ssh/и перейдите в него:mkdir -p ~/.ssh && chmod 700 ~/.ssh && cd ~/.ssh/
Выполните команду:
ssh-keygen -C "<comment>" -f ./<filename> -N "<password>"
Здесь:
<comment> – комментарий к ключу.
<filename> – название файла для сохранения приватного ключа. Публичный ключ хранится в файле с тем же названием, к которому добавляется расширение
.pub.<password> – пароль для защиты приватного ключа. Если в качестве пароля используется пустая строка
"", приватный ключ создается без защиты.
Подробности о команде
ssh-keygenдоступны во встроенной справке:man ssh-keygenПример
Для создания пары ключей можно использовать следующую команду:
ssh-keygen -C "Astra Automation" -f ~/.ssh/astra-automation
Утилита
ssh-keygenзапросит пароль для защиты приватного ключа, после чего создаст в каталоге~/.ssh/два файла:astra-automation– приватный ключ;astra-automation.pub– публичный ключ.
Установите на приватный ключ права доступа
600:chmod 600 ./<filename>
Здесь <filename> – название файла, в котором сохранен приватный ключ.
Примечание
Права доступа
600означают, что только пользователь-владелец файла имеет права на чтение и запись.
Настройка целевого узла#
Для разрешения подключения к узлу по SSH с использованием ключей выполните следующие действия:
Установите пакет сервера OpenSSH, если он не установлен:
sudo apt update && sudo apt install --yes openssh-server
Включите автоматический запуск сервера OpenSSH при загрузке системы (если не настроено):
sudo systemctl enable ssh.service
В каталоге
/etc/ssh/sshd_config.d/создайте файлssh_auth_keys.confсо следующим содержимым:PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
Примечание
Сервер OpenSSH обрабатывает в каталоге
/etc/ssh/sshd_config.d/только файлы с расширением.conf.Перезапустите сервер OpenSSH:
sudo systemctl restart ssh
Выберите учетную запись, которую будете использовать для авторизации по протоколу SSH при выполнении сценариев автоматизации. В домашнем каталоге этой учетной записи создайте подкаталог
.ssh/, а в нем – файлauthorized_keys. Владельцем домашнего каталога и всех файлов внутри него должна быть выбранная учетная запись.Установите права доступа
700на каталог~/.ssh/и600на файл~/.ssh/authorized_keys:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
Добавьте в файл
~/.ssh/authorized_keysсодержимое соответствующего публичного ключа, например (часть содержимого ключа опущена с целью сокращения):Совет
Если узел разрешает подключение с использованием протокола SSH с авторизацией по паролю, публичную часть ключей можно разместить с помощью утилиты
ssh-copy-id:ssh-copy-id -i <filename> <user>@<host>
Здесь:
<filename> – путь к файлу публичного ключа;
<user> – название учетной записи пользователя узла;
<host> – IP-адрес или FQDN узла.
Проверьте подключение к узлу с управляющего узла:
ssh -i <filename> <user>@<host>
Здесь:
<filename> – путь к файлу приватного ключа;
<user> – название учетной записи пользователя узла;
<host> – IP-адрес или FQDN узла.
Ожидаемый результат: подключение выполняется без запроса пароля учетной записи.
Примечание
Для выполнения задач с повышением привилегий (ansible_become) выбранной учетной записи необходимо разрешить выполнение команд с помощью sudo.