ОС Linux#
Для подключения к управляемым узлам под управлением ОС Linux рекомендуется использовать протокол SSH. Он позволяет авторизоваться на узле различными способами, но чаще всего используются следующие два:
пароль;
ключи шифрования (далее – ключи).
Рекомендуемым способом авторизации является использование ключей. Для этого необходимо создать пару ключей – приватный и публичный. Приватный ключ необходимо оставить на управляющем узле, а публичный разместить на управляемых узлах.
Генерация ключей#
Для создания пары ключей выполните следующие действия:
Перейдите в каталог
~/.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 openssh-server --yes
Включите автоматический запуск сервера OpenSSH при загрузке системы:
sudo systemctl enable ssh.service
В каталоге
/etc/ssh/sshd_config.d/
создайте файлssh_auth_keys
со следующим содержимым:PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
Перезапустите сервер OpenSSH:
sudo systemctl restart ssh
Выберите учетную запись, которую будете использовать для авторизации по протоколу SSH при выполнении сценариев автоматизации. В домашнем каталоге этой учетной записи создайте подкаталог
.ssh/
, а в нем – файлauthorized_keys
. Владельцем домашнего каталога и всех файлов внутри него должна быть выбранная учетная запись.Установите на файл
~/.ssh/authorized_keys
права доступа600
:chmod 600 ~/.ssh/authorized_keys
Добавьте в файл
~/.ssh/authorized_keys
содержимое соответствующего публичного ключа, например (часть содержимого ключа опущена с целью сокращения):Совет
Если узел разрешает подключение с использованием протокола SSH с авторизацией по паролю, публичную часть ключей можно разместить с помощью утилиты
ssh-copy-id
:ssh-copy-id -i <filename> <user>@<host>
где:
<filename> – путь к файлу публичного ключа;
<user> – название учетной записи пользователя узла;
<host> – IP-адрес или FQDN узла.