WSSH
Служба wssh позволяет подключаться к узлам ПАК с использованием протокола SSH.
Подключение может выполняться двумя способами:
-
через веб-интерфейс, реализующий функциональность работы с терминалом;
-
с помощью стороннего клиента SSH.
В обоих случаях Геном автоматически настраивает подключение:
-
Создаёт пользователей ОС и включает их в необходимые группы на промежуточном узле (jump host) и целевых узлах.
В роли промежуточного выступает узел, на котором развёртывается служба
wssh. -
Создаёт пару ключей, используемых для аутентификации.
-
Генерирует сертификаты для защиты подключения.
|
Для использования описанной функциональности на узлах должен быть установлен сервер OpenSSH версии более новой чем 7.8. |
Подготовка нового узла к работе
Чтобы подготовить новый узел к работе с сервисом:
-
Установите на узел plagent, следуя инструкции.
-
В конфигурационном файле
/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 добавьте их в соответствующие группы. От этого зависит срок действия сертификата, используемого для защиты подключения.
| Группа | Права | Срок действия сертификата |
|---|---|---|
|
Запуск команд с повышенными привилегиями |
1 сутки |
|
Запуск команд без повышения привилегий |
7 суток |
Если пользователь входит в обе группы, срок действия сертификата — одни сутки.
Аннулирование сертификатов и остановка сессий
Если роли и полномочия пользователя изменились, аннулируйте его действующие сертификаты и сессии:
-
Подключитесь к узлу, на котором выполняется служба
wssh. -
Выполните команду:
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, а затем восстановить их, при подключении к узлам будут возникать ошибки.
В этом случае необходимо сбросить конфигурацию узлов:
-
Подключитесь к узлу со службой
wssh. -
Выполните соответствующую команду.
-
Сброс конфигурации всех узлов:
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-адрес нужного узла.
-