Невозможно заставить SVN хранить пароли, даже если конфигурация разрешена - PullRequest
30 голосов
/ 08 апреля 2010

Я сделал все, что говорится в книге, то есть удалил файлы аутентификации из .subversion / auth, и явно установил соответствующие параметры конфигурации на «да» , даже если это значение по умолчанию, и все же оболочка SVNКоманды каждый раз запрашивают пароль.Репозиторий находится на cvsdude.com, а клиент - Linux.Я также использую плагин Subclipse, который кеширует пароль. ОК.

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

Ответы [ 16 ]

37 голосов
/ 27 июня 2013

В последних версиях Subversion (~ 1.8) вы можете настроить кэширование паролей с помощью $HOME/.subversion/servers:

[global]
store-passwords = yes
store-plaintext-passwords = yes

Но в зависимости от вашей системы этого может быть недостаточно.Если это не так, убедитесь, что $HOME/.subversion/config содержит:

[auth]
password-stores =

. Это означает, что переменная password-store явно установлена ​​в пустую строку (фон в том, что svn теперь содержит поддержку для некоторого агента ключаинструменты - и интерфейс к настроенным по умолчанию может быть хрупким - приводя к тихому игнорированию вышеуказанных параметров и поведению без кэширования).

При первом использовании svn создается иерархия $HOME/.subversionпосле первой операции SVN - например, при выполнении первой проверки.Затем Subversion создает упомянутые файлы и заполняет их наиболее важными параметрами - закомментированными, включая некоторую документацию.

Таким образом, также имеет смысл переместить старый каталог $HOME/.subversion, чтобы иметь четко определенные начальные значения.точка.

Еще одной ловушкой являются разрешения - то есть файлы, которые не читаются в $HOME/.subversion, - но это не должно часто быть проблемой, потому что когда svn создает их, оно заботится о правильных разрешениях (например,каталог auth доступен для чтения только пользователю, а не группе / всем, независимо от настроенного umask).

9 голосов
/ 05 июня 2013

Я хотел бы представить подробный ответ на случай, если это поможет кому-то в будущем.

Subversion 1.6 и более поздние версии будут кэшировать ваше имя пользователя и пароль по умолчанию, однако не будут кэшировать пароли в виде открытого текста, если вы явно не разрешите это через командную строку или путем изменения конфигурации Subversion.

Если вы извлекли рабочую копию, используя опции --username и --password, вы увидите следующее сообщение:

-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:

<https://subversion.assembla.com:443> Assembla Restricted Area

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
'~/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? 


Таким образом, как упоминалось в сообщении, Subversion будет сохранять незашифрованный пароль, только если вы введете «да». Если вы это сделаете, вам не нужно добавлять опции --username или --password при выполнении команд svn в будущем.

Однако, если вы предпочитаете вообще не видеть это приглашение, вы можете изменить глобальную конфигурацию для вашего клиента Subversion, изменив файл конфигурации с именем «server» на вашем локальном компьютере. Хранится здесь:

~/.subversion/server

Вам потребуется добавить следующие строки в файл «server»:

[global]
store-plaintext-passwords = yes

С этим изменением вам нужно выполнить команду svn только один раз, используя опции --username и --password. Тогда Subversion автоматически сохранит ваши учетные данные без вышеуказанного запроса.

Для получения дополнительной информации об отключении этого предупреждения о кэшировании паролей в виде простого текста см. Улучшения безопасности Subversion 1.6 сообщение в блоге.

7 голосов
/ 20 августа 2013

Я думаю, что нашел здесь полезную подсказку: http://svn.haxx.se/users/archive-2013-07/0094.shtml

Как я понял, клиент забыл проверить, запущен ли "gpg-agent".

Он вставляет "passtype" = "gpg-agent" в ~/.subversion/auth/svn.simple/ -cache-файлы по умолчанию.

Это ошибка!

В качестве решения (и во избежание изменения файлов кэша паролей в ~. / Subversion / auth / svn.simple / вручную) удалите эти файлы (но сделайте save-copy).

Добавьте строку в ~/.subversion/config ([auth] -section):

password-stores=

(СЧИТАЙТЕ: пустое значение! Это не позволяет клиенту выбрать какой-либо неправильный материал и принять «простой».)

Теперь, например, попробуйте:

svn up

Subversion теперь будет предупреждать вас о сохранении простых паролей.

Если у вас нет проблем с этим, введите "да", и все снова в порядке.

После этого Subversion создала кеш-файл для определенного сервера, и вы можете снова удалить вход «password-store».

7 голосов
/ 20 апреля 2011

Я столкнулся с той же проблемой и считаю, что установил все соответствующие конфиги в .subversion / servers и .subversion / config, тоже попытался удалить .subversion / auth и т. Д., Но безрезультатно.1002 * Я закончил тем, что сохранил учетные данные, переместив каталог .subversion (или удалив его тоже будет работать) и запустив svn co.Я получил следующее сообщение:

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <http://sweeney:80> Subversion repository

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/davids/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? 

Я набрал yes, а затем получил то же сообщение.Упорно, я напечатал да еще раз.Теперь мой пароль, похоже, сохранен.

Удивительно, но, глядя на конфиги в .sverversion, ни одна из настроек не комментируется;все они настроены на значения по умолчанию, поэтому я полагаю, что в будущем мне придется дважды ответить на это предупреждение, чтобы сохранить пароль для другого сервера.

Надеюсь, это поможет.

5 голосов
/ 12 октября 2015

Удалить старый сохраненный пароль, например rm ~ / .subversion / auth / svn.simple / *.Я попробовал любое другое предложение, и это то, что сработало для меня.

5 голосов
/ 01 июня 2011

Благодаря вашим комментариям я обнаружил проблему - это настройки в файле серверов (не храните простые пароли). Интересно, почему существует такая избыточность в разделе [auth] файла конфигурации. SVN book также не упоминает об этом, когда говорит о хранении паролей.

3 голосов
/ 15 ноября 2011

Мне нужно было внести изменения в файл сервера, чтобы сделать эту работу для меня

# Password / passphrase caching parameters:
store-passwords = yes
store-plaintext-passwords = yes
2 голосов
/ 06 января 2015

В Windows с slikSVN у меня возникла та же проблема, но только с одним из проектов, поэтому я пошел в% AppData% \ Roaming \ Subversion \ auth \ svn.simple и удалил файл, содержащий информацию о проекте.

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

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

2 голосов
/ 01 июня 2011

Вы можете использовать gnome-keyring даже без инициализации X. Вы должны запустить

export `gnome-keyring-daemon`

при входе в систему и

kill $GNOME_KEYRING_PID

до выхода из системы.

Тогда вы можете использовать keyring_tool утилиту командной строки.

1 голос
/ 28 января 2016

Удалить файлы из следующего каталога:

Для Windows:

Например:

C: \ Users \ abcd.xyz \ AppData \ Roaming \Subversion \ auth \ svn.simple

abcd.xyz -> имя пользователя

Примечание. Удалить все файлы.Эти файлы содержат метаданные об оформлении заказа.В следующий раз, когда вы сохраните ваш пароль, он автоматически создаст здесь файл.

Удалите файл .keyring из вашей установки STS / Eclipse .Остановите Eclipse и удалите файл.

Например:

D: \ Executables \ New STS \ STS-3.5.0-e4.3.2-win64 \ configuration \ org.eclipse.core.runtime ->. keyring

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