SVN не будет кэшировать учетные данные - PullRequest
10 голосов
/ 21 февраля 2011

Я использую клиент командной строки svn (версия 1.6.12, из репозиториев Ubuntu) и не могу заставить его кэшировать свои учетные данные. Я пытаюсь получить доступ к хранилищу HTTPS SVN (что-то вроде https://subversion.FAKE.com/PROJECT). Мое имя пользователя для этого репо отличается от моего локального имени пользователя.

Вот раздел аутентификации ~ / .subversion / config

[auth]
### Set password stores used by Subversion. They should be
### delimited by spaces or commas. The order of values determines
### the order in which password stores are used.
### Valid password stores:
###   gnome-keyring        (Unix-like systems)
###   kwallet              (Unix-like systems)
###   keychain             (Mac OS X)
###   windows-cryptoapi    (Windows)
# password-stores = gnome-keyring
### 
### The rest of this section in this file has been deprecated.
### Both 'store-passwords' and 'store-auth-creds' can now be
### specified in the 'servers' file in your config directory.
### Anything specified in this section is overridden by settings
### specified in the 'servers' file.
### 
### Set store-passwords to 'no' to avoid storing passwords in the 
### auth/ area of your config directory.  It defaults to 'yes',
### but Subversion will never save your password to disk in
### plaintext unless you tell it to (see the 'servers' file).
### 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 = yes 

А вот глобальный раздел ~ / .subversion / servers

[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
# http-proxy-host = defaultproxy.whatever.com
# http-proxy-port = 7000
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem
#
# Password / passphrase caching parameters:
store-passwords = yes
store-plaintext-passwords = no
store-auth-creds = yes
# store-ssl-client-cert-pp = no
# store-ssl-client-cert-pp-plaintext = no

Единственные изменения, которые я сделал, - это явная установка нескольких параметров, связанных с хранением паролей. Я попытался установить пароли-хранилища = gnome-keyring без эффекта. Кроме того, я удалил ~ / .subversion / auth (как в некоторых других потоках), и он все еще не был воссоздан клиентом svn.

Есть предложения? Как я могу заставить SVN хранить свои учетные данные (в ~ / .subversion / auth или с помощью gnome-keyring, мне все равно).

Ответы [ 6 ]

8 голосов
/ 30 ноября 2011

У вас есть как минимум три варианта

  1. Настройка ssh без паролей ( попробуйте этот пример )
  2. Использование gnome-keyring ( googleнайдите 'svn gnome keyring password' ).Обычно это сводится к редактированию ~/.subversion/config file (password-stores = gnome-keyring и store-passwords = yes).
  3. Сохраните пароль в открытом тексте.

Чтобы сохранить пароль в незашифрованном виде, сначала удалите каталог ~/.subversion.Это удалит все ранее настроенные элементы, такие как серверные сертификаты, которые вы уже приняли, и все ранее кэшированные пароли.При следующем запуске svn будет воссоздана «пустая» структура каталогов.Затем запустите команду svn для вашего хранилища.Вы должны увидеть что-то похожее на следующее:

$> cd <project directory>
$> svn update
Error validating server certificate for 'https://...':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: ...
 - Valid: ...
 - Issuer: ...
 - Fingerprint: ...
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Password for 'your username': secret
-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

  <https://...> ...

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/.../.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes

ПРИМЕЧАНИЕ !!!Это сохранит ваш пароль в незашифрованном виде (довольно небезопасно) , но также кеширует ваш пароль, поэтому вам не придется вводить его каждый раз.В конечном итоге пароль сохраняется в виде открытого текста в ~/.subversion/auth/svn.simple/.

5 голосов
/ 09 ноября 2012

Если все упомянутые параметры установлены правильно, возможно, клиент svn не может записать файл учетных данных из-за разрешений.Я обнаружил, что этот поток работает аналогично, и разрешения были исправлены.

1 голос
/ 28 февраля 2011

Файлы конфигурации для Subversion существуют в пользовательской области (ваш домашний каталог ~ / .subversion) и в системной области (/ etc / subversion), см. http://svnbook.red -bean.com / ru / 1.1 / ch07.html. # СВН-CH-7-раздел-1,1 . If может копировать файлы «config» и «servers» из системных файлов или редактировать их напрямую, если у вас есть права администратора.

Самое простое, но небезопасное решение состоит в том, чтобы поместить учетные данные кеша Subversion в простой файл. Для этого просто установите store-passwords = yes и оставьте все остальные настройки по умолчанию (с комментариями).

Хранение паролей с помощью gnome-keyring может не работать, поскольку инструмент не был установлен или, возможно, gnome-keyring-daemon не запущен.

0 голосов
/ 16 февраля 2012

В вашей конфигурации есть опция store-plaintext-passwords = no, которая запрещает хранить пароль в $ HOME / .subversion, если не доступно какое-либо поддерживаемое шифрование.

Чтобы вернуться к поведению до 1.6, вы можете изменить значение на yes, что позволяет сохранить пароль.

0 голосов
/ 14 ноября 2011

Не знаю, было ли это решено, но вы пробовали добавить

password-stores = 

в ваш файл конфигурации?

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

Не уверен, если вы все еще ищете ответ здесь;но опция "ssl-client-cert-password", вероятно, та, которую вы ищете.

ssl-client-cert-password=<password>
...