у меня есть 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
файл.