Невозможно сделать пароли хранилища SVN, даже если конфигурация настроена так, чтобы это позволяло

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

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

Ответ 1

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

Ответ 2

В последних версиях 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).

Ответ 3

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

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, изменив файл конфигурации, называемый "сервер" на вашем локальном компьютере. Он хранится здесь:

~/.subversion/server

Вам нужно будет добавить следующие строки в файл "server":

[global]
store-plaintext-passwords = yes

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

Дополнительные сведения об отключении этого предупреждения о кешировании паролей в текстовом виде см. в блоге Subversion 1.6 Security Improvements.

Ответ 4

Я столкнулся с этой же проблемой и считаю, что я установил все соответствующие конфиги в .subversion/servers и .subversion/config, тоже попытался удалить .subversion/auth и т.д., но безрезультатно.

Я закончил тем, что сохранил учетные данные, переместив каталог .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)? 

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

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

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

Ответ 5

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

# Password / passphrase caching parameters:
store-passwords = yes
store-plaintext-passwords = yes

Ответ 6

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

Ответ 7

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

export `gnome-keyring-daemon`

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

kill $GNOME_KEYRING_PID

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

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

Ответ 8

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

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

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

Это ошибка!

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

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

password-stores=

(CONSIDER: пустое значение! Это не позволяет клиенту выбирать какие-либо неправильные вещи и принимать "простые".)

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

svn up

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

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

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

Ответ 9

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

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

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

Ответ 10

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

Щелкните правой кнопкой мыши и выберите "получить информацию". Нажмите раздел управления доступом сверху. Затем нажмите "Разрешить всем приложениям доступ к этому элементу". Хотя это может сделать что-то непреднамеренное.

Ответ 11

Если вы пытаетесь выполнить reset проверку подлинности на существующей рабочей копии, я бы рекомендовал вам проверить новую копию после выполнения всех вышеуказанных изменений. Это было единственное, что сработало для меня, когда я пытался выпустить проект с помощью maven-release-плагина (который использует сохраненные учетные данные svn для автоматической фиксации ваших тэгов и т.д.)

Ответ 12

По какой-то нечетной причине моя папка .subversion не принадлежала мне, и SVN не сохранил сертификаты паролей.

Я только что сделал sudo chown -R me ~/.subversion, и теперь все работает!

Ответ 13

Помните, что существует различие в отношении хранения паролей между svn co/up и svn log!

Я попробовал все намеки выше и всегда пытался проверить с помощью 'svn log' - команда svn всегда спрашивала меня снова и снова о пароле, независимо от того, правильно ли были заданы параметры store-plaintext-паролей или да. Но когда я сделал новую проверку или обновление, у меня неожиданно появилось правильное поведение, и мой пароль получил сохранение

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

Ответ 14

Я испытал такие проблемы после смены пароля и вылечил удаление SVN-конфигурации (и, таким образом, воссоздал ее с нуля).

Ответ 15

Удалите файлы из каталога ниже:

Для Windows:

Например:

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

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

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

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

Например:

D:\Исполняемые\New STS\STS-3.5.0-e4.3.2-Win64\Конфигурация\org.eclipse.core.runtime -. > Брелок

Ответ 16

Решение, которое сработало для меня (даже не лучшее решение, по крайней мере, привело меня в бегство), предоставить моему локальному пользователю все разрешения для каталога ~/.subversion и подкаталогов. Затем я мог быстро выполнять операции над subversion без подсказки имени пользователя и пароля.