Назад | Перейти на главную страницу

Почему svnserve по-прежнему запрашивает пароль через svn + ssh при использовании sasl?

у меня есть svnserve настроен для запуска из inetd и svnserve.conf установлен для использования sasl для аутентификации. Это сделано для того, чтобы я мог разрешить доступ к некоторым репозиториям пользователям, у которых нет общесистемных учетных записей, используя svn://.

Однако для пользователей, у которых есть системная учетная запись (например, у меня), я предпочитаю использовать svn+ssh:// для аутентификации с открытым ключом. Насколько я понимаю, при запуске от имени svnserve -t, svnserve не будет запрашивать аутентификацию и будет использовать SSH-аутентифицированного текущего пользователя. Я чувствую, что раньше это работало. Сегодня, когда я пошел обновлять рабочую копию, я использовал svn+ssh:// путь к репозиторию он начал спрашивать у меня пароль.

Я смог подтвердить, что это не SSH запрашивает у меня пароль, аутентификация с открытым ключом проходит успешно, это svnserve / sasl запрашивает у меня пароль. Если я отключу sasl, похоже, он будет работать должным образом, но я предпочитаю sasl файлу паролей с открытым текстом. Я не уверен, что это никогда не работало или было сломано недавним обновлением, которое я не заметил. Это с Subversion 1.9.4 на Debian stretch.

После прочтения svnserve источник, я нашел ответ. Даже с -t, он по-прежнему делегирует аутентификацию sasl, просто теперь возможна внешняя аутентификация через пользователя SSH. Но чтобы это сработало, мне пришлось добавить EXTERNAL как разрешенный механизм для mech_list в моем /usr/lib/sasl2/svn.conf файл.