Airlock может проксировать SSH к существующим серверам OpenSSH (sshd) без установки бинарника airlock на узел. Серверы принимают динамически выданные сертификаты от CA Airlock.
Это быстрый способ подключить legacy-системы. В перспективе рекомендуется заменить sshd на airlock для полной поддержки RBAC, записи сессий без разрыва соединения, совместного доступа к сессиям и расширенной записи.
Proxy Service проверяет роли пользователя, аутентифицируется на OpenSSH-узле сертификатом CA Airlock и ведёт аудит.
Предварительные требования
- OpenSSH 6.9+ на клиентской машине:
ssh -V - Linux-хост с
sshd7.4+, без Airlock; порт SSH открыт для Proxy Service airctlиairshна административной машине
Шаг 1. Ресурс узла в кластере
Создайте openssh-node-resource.yaml:
kind: node
version: v2
sub_kind: openssh
metadata:
name: a100fdd0-52db-4eca-a7ab-c3afa7a1564a
labels:
env: prod
spec:
addr: 1.2.3.4:22
hostname: openssh-nodespec.addr— IP и порт SSHspec.hostname— имя для пользователей в Airlockmetadata.name— UUID (uuidgen)
airctl create -f openssh-node-resource.yamlШаг 2. Доверие sshd к CA Airlock
На хосте с sshd (замените airlock.example.com):
export KEY=$(curl 'https://airlock.example.com/webapi/auth/export?type=openssh' | sed "s/cert-authority\ //")
sudo bash -c "echo \"$KEY\" > /etc/ssh/airlock_openssh_ca.pub"
sudo bash -c "echo 'TrustedUserCAKeys /etc/ssh/airlock_openssh_ca.pub' >> /etc/ssh/sshd_config"
sudo systemctl restart sshdШаг 3. Сертификат хоста
Создайте роль для выпуска host-сертификатов (host-certifier.yaml):
kind: role
version: v5
metadata:
name: host-certifier
spec:
allow:
rules:
- resources: [host_cert]
verbs: [list, create, read, update, delete]airctl create -f host-certifier.yamlНазначьте роль своему пользователю через airctl users update.
UUID узла:
airctl get node/openssh-node --format=json | jq -r ".[0].metadata.name"Выпустите сертификат хоста:
ADDR=1.2.3.4,openssh-node,a100fdd0-52db-4eca-a7ab-c3afa7a1564a
airctl auth sign --host=${ADDR} --format=openssh --out=myhostСкопируйте myhost и myhost-cert.pub на сервер в /etc/ssh, права 0600, добавьте в sshd_config:
HostKey /etc/ssh/myhost
HostCertificate /etc/ssh/myhost-cert.pubsudo systemctl restart sshdШаг 4. Конфигурация SSH-клиента
Войдите в кластер:
airsh login --proxy=airlock.example.com --user=myuser
airsh config > ssh_config_airlockШаг 5. Подключение
USER=ubuntu
CLUSTER=airlock.example.com
PORT=22
ADDR_NODE=openssh-node
ssh -p ${PORT} -F ssh_config_airlock "${USER}@${ADDR_NODE}.${CLUSTER}"Порт 22 переопределяется явно: у OpenSSH-узла нет обратного туннеля на 3022, Proxy Service подключается напрямую к spec.addr.
Airlock использует сертификаты OpenSSH. В разделе Principals сертификата должны быть все имена и адреса, по которым вы подключаетесь.
Следующие шаги
Для новых серверов предпочтительнее SSH-узел с агентом.