WSSH

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

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

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

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

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

    В роли промежуточного выступает узел, на котором развёртывается служба wssh.

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

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

Для использования описанной функциональности на узлах должен быть установлен сервер OpenSSH версии более новой чем 7.8.

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

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

  1. Установите на узел plagent, следуя инструкции.

  2. В конфигурационном файле /opt/skala-r/platform-services/configs/wssh.yml в значении ключа jumphost.host_ssh_addr укажите IP-адрес узла, на котором развёртывается служба wssh, например:

    Пример заполнения wssh.yml
    # ...
    jumphost:
      ssh_key_dir: "/app/keys"
      host_ssh_addr: "192.168.0.1"
      remote_host_ssh_port: 2222
      host_ssh_port: 2222
      ca_key: "/etc/ca/private/ca.key"
    # ...

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

Чтобы пользователи могли использовать соответствующую функциональность, в 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, а затем восстановить их, при подключении к узлам будут возникать ошибки. В этом случае необходимо сбросить конфигурацию узлов:

  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-адрес нужного узла.