Как включить доступ к репозитариям по ключу в RhodeCode

by Anton Chernousov aka GITA-DEV


Опубликовано: 12 Мар 2018 (последние правки 2 месяца)


Как включить доступ к репозитариям по ключу в RhodeCode

RhodeCode поддерживает доступ к репозитариям с использованием публичного ключа, но по умолчанию этот режим отключен и используется доступ к репозитариям с использованием пары логин-пароль. Я предпочитаю использовать именно авторизацию по ключу и сегодня будем разбираться как этот режим включить в RhodeCode

Все современные хранилища репозиториев поддерживают авторизацию с использованием открытых ключей и в связи с этим было неожиданно увидеть сообщение "SSH Keys usage is currently disabled, please ask your administrator to enable them.".

По умолчанию авторизация по ключу запрещена

Так как на этом проекте администратор я, то и спрашивать буду у себя.

Официальная документация по ssh-авторизации находится по адресу https://docs.rhodecode.com/RhodeCode-Enterprise/auth/ssh-connection.html, фактически для включения режима авторизации по ключам надо добавить раздел AuthorizedKeysFile в конфигурацию демона sshd и включить режим авторизации по ключу в конфигурационном файле RhodeCode.

Начнем с модификации конфигурации демона sshd и вам потребуется изменить строку (в некоторых дистрибутивах ее придется раскомментировать):

AuthorizedKeysFile     %h/.ssh/authorized_keys

в файле /etc/ssh/sshd_config на:

AuthorizedKeysFile      %h/.ssh/authorized_keys %h/.ssh/authorized_keys_rhodecode

Как вы наверное поняли, мы добавляем дополнительный файл с ключами авторизации для пользователей.

В завершении настройки разрешаем RhodeCode использовать SSH-авторизации, для чего в файле /home/git/.rccontrol/community-1/rhodecode.ini измените параметры:

ssh.generate_authorized_keyfile = true
ssh.authorized_keys_file_path = ~/.ssh/authorized_keys_rhodecode
ssh.wrapper_cmd = ~/.rccontrol/community-1/rc-ssh-wrapper
ssh.wrapper_cmd_allow_shell = false
ssh.enable_debug_logging = false
ssh.executable.hg = ~/.rccontrol/vcsserver-1/profile/bin/hg
ssh.executable.git = ~/.rccontrol/vcsserver-1/profile/bin/git
ssh.executable.svn = ~/.rccontrol/vcsserver-1/profile/bin/svnserve

Фактически достаточно только изменить строку ssh.generate_authorized_keyfile = true, а остальные оставить по умолчанию.

Авторизация по ключам будет доступна после перезапуска службы:

# systemctl restart rhodecode.service

После добавления вашего публичного файла проверьте изменения в файле authorized_keys_rhodecode (в каталоге пользователя git)

Авторизация по ключу активирована


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.