SSH

Служба wssh позволяет подключаться к узлам ПАК с использованием протокола SSH. Подключение может выполняться двумя способами:

  • через веб-интерфейс, реализующий функциональность работы с терминалом;

  • с помощью стороннего клиента SSH.

В обоих случаях Геном автоматически настраивает подключение:

  • создаёт пользователей ОС и включает их в необходимые группы на промежуточном (jump host) и целевых узлах;

  • создаёт пару ключей, используемых для аутентификации;

  • генерирует сертификаты для защиты подключения.

Подготовка узла к работе

Чтобы подготовить узел к работе, установите на него plagent и плагины:

  • files;

  • services;

  • users;

  • wssh.

Для этого следуйте инструкциям:

Пользователи

Чтобы пользователи могли использовать соответствующую функциональность, в IAM добавьте их в соответствующие группы. От этого зависит срок действия сертификата, используемого для защиты подключения.

Группа Права Срок действия сертификата

ssh_access_sudo

Запуск команд с повышенными привилегиями

1 сутки

ssh_access_no_sudo

Запуск команд без повышения привилегий

7 суток

Если пользователь входит в обе группы, срок действия сертификата — одни сутки.

Аннулирование сертификатов и остановка сессий

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

  1. Подключитесь к узлу, на котором выполняется служба wssh.

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

    docker exec \
       -it $(docker ps -f name=wssh -q | head -n 1) \
       python3 -c "from src.configuration.hosts.cleanup import HostCleanup; HostCleanup().delete_jh_user('<username>')"

    Здесь <username> — имя пользователя.

При следующем подключении сертификаты будут сгенерированы заново.

Настройки и служебные данные

Служба wssh использует следующие файлы и директории:

  • /opt/skala-r/platform-services/configs/wssh.yml — основные настройки;

  • /opt/skala-r/platform-services/logs/wssh/ — журналы работы;

  • /opt/skala-r/platform-services/wssh/app/src/configuration/setting/ — настройки доступа и файлы sudoers;

  • /opt/skala-r/platform-services/wssh/app/src/configuration/settings/hosts.yaml — список узлов, доступ к которым обеспечивает служба;

  • /opt/skala-r/platform-services/wssh/ca — ключ для подписи корневых сертификатов SSH;

  • /opt/skala-r/platform-services/wssh/dumps/ — дампы сессий SSH;

  • /opt/skala-r/platform-services/wssh/home/ — домашние директории пользователей с ключами SSH;

  • /opt/skala-r/platform-services/wssh/server_crt/ — SSL-сертификаты сервера SSH;

  • /opt/skala-r/platform-services/wssh/ssh_hostkeys/ — ключи сервера SSH.

Перед обновлением и переустановкой платформы создайте резервную копию конфигурационных файлов службы wssh, так как они будут заменены оригинальными копиями, входящими в состав дистрибутива.

Сброс конфигурации сервиса и узлов

Если до обновления или переустановки платформы не удалось создать резервную копию конфигурационных файлов wssh, а затем восстановить их, при подключении к узлам будут возникать ошибки. В этом случае необходимо сбросить конфигурацию узлов:

  1. Подключитесь к узлу со службой wssh.

  2. Выполните соответствующую команду.

    • Сброс конфигурации всех узлов:

      docker exec \
         -it $(docker ps -f name=wssh -q | head -n 1) \
         curl -k -X DELETE https://wssh:8080/configuration
    • Сброс конфигурации отдельного узла:

      docker exec \
         -it $(docker ps -f name=wssh -q | head -n 1) \
         curl -k -X DELETE https://wssh:8080/configuration?ip=<host>

      Здесь <host> — IP-адрес нужного узла.