Автоматическая аутентификация с Subversion - PullRequest
6 голосов
/ 01 марта 2011

У меня есть сервер SVN, к которому я подключаюсь с ssh+svn. При проверке определенного каталога, содержащего множество svn:external репозиториев, я должен много раз вводить свой пароль.

  1. Как настроить мой клиент Subversion для автоматической аутентификации?
  2. Где документация для этого?

Ответы [ 3 ]

4 голосов
/ 01 марта 2011

Я не знаю о встроенном механизме SVN для автоматической аутентификации SSH. Но вы можете использовать механизм аутентификации с открытым ключом из SSH:

Вот краткое руководство о том, как это сделать: http://www.petefreitag.com/item/532.cfm Вы можете легко найти больше информации об этом в Интернете.

Поскольку это может быть полезно, вот более подробное руководство с информацией о переадресации агентов: http://unixwiz.net/techtips/ssh-agent-forwarding.html

Некоторые основы аутентификации с открытым ключом

Для удаленного сервера SSH существует другой способ аутентификации при попытке входа в систему. Классический пароль является одним из них. Но также можно использовать механизм, основанный на асинхронных ключах.

Вы создаете пару ключей на локальном компьютере: частную и общедоступную. Затем вы должны распространить открытый ключ на все удаленные SSH-серверы, на которые вы хотите войти. Очень важно, чтобы закрытый ключ никогда не распространялся.

Когда вы пытаетесь войти, удаленный сервер отправляет запрос, который зашифрован с помощью закрытого ключа. Если вы знакомы с асинхронной криптографией, вы знаете, что теперь только открытый ключ может расшифровать указанную зашифрованную задачу. Поэтому, когда сервер получает ответ, он может расшифровать его, и если ответ и запрос идентичны, вы аутентифицируетесь.

Больше не требуется пароль для операций SVN или любого другого подключения SSH к этому удаленному компьютеру.

SSH-агент

Еще одна информация о ssh-агентах.

Когда вы создаете пару ключей, ssh-keygen запросит пароль для дальнейшего шифрования закрытого ключа для повышения его безопасности. Вы можете оставить этот пароль пустым, так что вам не нужно будет вводить пароль при использовании ключа.

Однако, если вы выбираете пароль, каждый раз, когда вы хотите использовать ключ, вы должны ввести пароль, который будет таким же, как при использовании аутентификации по паролю с SSH. Но есть изящное решение: ssh-agent.

Агент - это маленький демон, который будет хранить ваши ключи в памяти. Когда вы добавляете ключ к агенту с помощью ssh-add, он сначала запросит ваш пароль, а затем, каждый раз, когда клиенту SSH понадобится ключ, он будет спрашивать агента, поэтому больше нет пароля.

Во второй ссылке вы найдете информацию о переадресации агентов, что также является хорошей причиной для использования ssh-agent.

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

2 голосов
/ 07 октября 2011

SVN поддерживает хранение аутентификации - что полезно для избежания необходимости аутентификации для каждого svn: external.См. Файл config и README.txt, расположенный в ~ / .subversion.

Первая часть файла конфигурации должна быть разделом аутентификации:

### Section for authentication and authorization customizations.
[auth]
### Set store-passwords to 'no' to avoid storing passwords in the
### auth/ area of your config directory.  It defaults to 'yes'.
### Note that this option only prevents saving of *new* passwords;
### it doesn't invalidate existing passwords.  (To do that, remove
### the cache files by hand as described in the Subversion book.)
store-passwords = yes
### Set store-auth-creds to 'no' to avoid storing any subversion
### credentials in the auth/ area of your config directory.
### It defaults to 'yes'.  Note that this option only prevents
### saving of *new* credentials;  it doesn't invalidate existing
### caches.  (To do that, remove the cache files by hand.)
# store-auth-creds = no

Похоже, ключи хранятсяв ~ / .subversion / auth (по крайней мере, в Unix).

В моем тесте меня попросили проверить подлинность при первом извлечении из svn: external как часть проверки соединительной линии.Последующие обновления svn транка не вызывали проблему аутентификации для обновления внешнего.

Я второй использую ssh-ключи для доступа к вашему репо.Эта информация относится только к аутентификации SVN.

0 голосов
/ 01 марта 2011

Да, во-вторых, аутентификация с открытым ключом - это путь.Если вы защищаете свой ключ парольной фразой, вы хотите использовать ssh-agent для хранения ключа в связке ключей в Linux или в представлении Putty в Windows.В противном случае вам все равно придется вводить парольную фразу все время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...