ОС Linux#

Для подключения к управляемым узлам под управлением ОС Linux рекомендуется использовать протокол SSH. Он позволяет авторизоваться на узле различными способами, но чаще всего используются следующие два:

  • пароль;

  • ключи шифрования (далее – ключи).

Рекомендуемым способом авторизации является использование ключей. Для этого необходимо создать пару ключей – приватный и публичный. Приватный ключ необходимо оставить на управляющем узле, а публичный разместить на управляемых узлах.

Генерация ключей#

Для создания пары ключей выполните следующие действия:

  1. Перейдите в каталог ~/.ssh/:

    cd ~/.ssh/
    
  2. Выполните команду:

    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 – публичный ключ.

  3. Установите на приватный ключ права доступа 600:

    chmod 600 ./<filename>
    

    где <filename> – название файла, в котором сохранен приватный ключ.

    Примечание

    Права доступа 600 означают, что только пользователь-владелец файла имеет права на чтение и запись.

Настройка целевых узлов#

Чтобы разрешить подключение к узлу по SSH с использованием ключей, выполните следующие действия:

  1. Установите пакеты сервера OpenSSH:

    sudo apt update && sudo apt-install openssh-server --yes
    
  2. Включите автоматический запуск сервера OpenSSH при загрузке системы:

    sudo systemctl enable ssh.service
    
  3. В каталоге /etc/ssh/sshd_config.d/ создайте файл ssh_auth_keys со следующим содержимым:

    PubkeyAuthentication  yes
    AuthorizedKeysFile   .ssh/authorized_keys  .ssh/authorized_keys2
    
  4. Перезапустите сервер OpenSSH:

    sudo systemctl restart ssh
    
  5. Выберите учетную запись, которую будете использовать для авторизации по протоколу SSH при выполнении сценариев автоматизации. В домашнем каталоге этой учетной записи создайте подкаталог .ssh/, а в нем – файл authorized_keys. Владельцем домашнего каталога и всех файлов внутри него должна быть выбранная учетная запись.

  6. Установите на файл ~/.ssh/authorized_keys права доступа 600:

    chmod 600 ~/.ssh/authorized_keys
    
  7. Добавьте в файл ~/.ssh/authorized_keys содержимое соответствующего публичного ключа, например (часть содержимого ключа опущена с целью сокращения):

    ssh-rsa AAAAB3NzaC1yc2EAd...4bwy3tY2/ administrator@node1.example.com
    

    Совет

    Если узел разрешает подключение с использованием протокола SSH с авторизацией по паролю, публичную часть ключей можно разместить с помощью утилиты ssh-copy-id:

    ssh-copy-id -i <filename> <user>@<host>
    

    где:

    • <filename> – путь к файлу публичного ключа;

    • <user> – название учетной записи пользователя узла;

    • <host> – IP-адрес или FQDN узла.