Linux#

Для подключения к целевому узлу под управлением операционной системы Linux рекомендуется использовать протокол SSH. Для этого на узле должен быть установлен серверный пакет OpenSSH. Если этого компонента нет или он не настроен, воспользуйтесь соответствующей инструкцией в зависимости от клона Linux:

Примечание

ВМ, созданные из образов Astra Linux UBI, уже включают в себя серверный пакет OpenSSH и сервер OpenSSH уже активирован в них.

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

  • пароль;

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

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

Приведенные далее инструкции описывают процесс настройки для Astra Linux Special Edition, но большинство шагов можно использовать и для других операционных систем.

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

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

  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 узла.