Описание работы SSH-сервера для использования в кластерной инсталляции SourceControl (Master-Master)#
Для корректной работы SSH-сервера в кластерной инсталляции необходимо использовать единую пару SSH-ключей – публичный и приватный ключи при конфигурации SSH-сервера на каждой node кластера. В противном случае пользователь не сможет работать по SSH c git-репозиторием и при смене активной node кластера получит сообщение о возможной MITM-атаке. Дальнейшая работа с git-репозиториями будет невозможна до удаления сохраненных ключей от других nodes в файле ~/.ssh/known_hosts.
Встроенный в SourceControl SSH-сервер поддерживает работу только с RSA-ключами, рекомендуется использовать 4096-битные RSA-ключи. Если необходимо использовать Ed25519-ключи, необходимо использовать другие SSH-серверы, например sshd с единой парой Ed25519-ключей.
Пример конфигурации встроенного в SourceControl SSH-сервера в app.ini:
[server]
DOMAIN = example.domain.org
DISABLE_SSH = False
START_SSH_SERVER = True
BUILTIN_SSH_SERVER_USER = %(RUN_USER)s
SSH_USER = %(BUILTIN_SSH_SERVER_USER)s
SSH_LISTEN_HOST = 0.0.0.0
SSH_LISTEN_PORT = 2222
SSH_SERVER_USE_PROXY_PROTOCOL = False
SSH_DOMAIN = %(DOMAIN)s
SSH_PORT = 7997
Где каждый ключ это:
DOMAIN– Доменное имя сервера/node кластера SourceControl.DISABLE_SSH– Отключить возможность подключаться по SSH, когда SSH-сервер недоступен.START_SSH_SERVER– Запустить встроенный SSH-сервер.BUILTIN_SSH_SERVER_USER– Имя пользователя, используемое для встроенного SSH-сервера.SSH_USER– Имя пользователя, которое будет отображаться в ссылке для клонирования git-репозитория по SSH.SSH_LISTEN_HOST– IP-адрес, который прослушивает встроенный SSH-сервер.SSH_LISTEN_PORT– TCP-порт, который прослушивает встроенный SSH-сервер.SSH_SERVER_USE_PROXY_PROTOCOL– Ожидаемый заголовок PROXY-протокола для встроенного SSH-сервера.SSH_DOMAIN– Доменное имя сервера/node кластера SourceControl, которое будет отображаться в ссылке для клонирования git-репозитория по SSH.SSH_PORT– SSH-порт, который будет отображаться в ссылке для клонирования git-репозитория по SSH.