Мне было интересно, есть ли способ сохранить мой пароль Subversion при выполнении svn
операций с консоли. Консоль - единственный вариант, который у меня есть. Когда я пытаюсь выполнить какое-либо действие Subversion, например svn commit
, он каждый раз запрашивает пароль учетной записи. Есть ли способ как-то сохранить этот пароль, чтобы мне не приходилось каждый раз вводить его заново?
107
Ответы:
В
~/.subversion/config
, вероятно, естьstore-passwords = no
. Измените его наyes
(или просто закомментируйте, потому что по умолчанию это да), и в следующий раз, когда вы дадите Subversion свой пароль, он должен его сохранить.Возможно, вы захотите убедиться, что владелец и права доступа
~/.subversion/config
указаны правильно (нет публичного или группового доступа; 600).источник
Red Hat Linux 2.6.18
. есть идеи, где это могло быть?/etc/subversion/config
система работает как положено. Спасибоstore-passwords
Опция вconfig
теперь устарела, согласно некоторым комментариям по умолчанию, которые я нашел в моемconfig
файле; она была заменена такой же опцией вservers
.)Это зависит от используемого вами протокола. Если вы используете SVN + SSH, клиент SVN не может сохранить ваш пароль, потому что он никогда не касается его - клиент SSH запрашивает его напрямую. В этом случае вы можете использовать SSH-ключ и ssh-agent, чтобы избежать постоянных запросов. Если вы используете протокол svnserve или HTTP (S), то клиент SSH обрабатывает ваш пароль и может его сохранить.
источник
.ssh/config
, добавить открытый ключ на сервер SVN.Попробуйте очистить
.subversion
папку в домашнем каталоге и повторите попытку. Он должен запросить ваш пароль, а затем спросить, хотите ли вы сохранить пароль.источник
Пришлось редактировать
~/.subversion/servers
. Ставилstore-plaintext-passwords = yes
(раньше не было). Это сработало. Однако это можно было бы считать небезопасным.источник
store-passwords = yes
. Я считаю, что он был установлен раньше, но сбился, когда я обновился до SVN 1.7Обратите внимание на следующий абзац из
~/.subversion/servers
файла:По крайней мере, для SVN версии 1.6.12. Так что не забывайте редактировать файл серверов, так как он отменяет
~/.subversion/config
.источник
Если вы используете svn + ssh , вы можете скопировать свой открытый ключ ssh на удаленный компьютер:
источник
Для меня (пользователя Mac) проблема заключалась в том, что в цепочке для ключей уже была сохранена запись для моих учетных данных, но права доступа были неправильными.
Удаление записи в приложении цепочки ключей и последующее ее воссоздание с помощью svn устранило проблему.
источник
Ни один из этих замечательных ответов не помог мне при новой установке Ubuntu. Вместо этого подсказка из этого ответа сработала для меня.
Мне пришлось разрешить "простое" хранилище паролей, установив его пустым в
~/.subversion/config
:Не было существующей настройки, поэтому пустота имеет значение.
Это было в дополнение к:
в
~/.subversion/servers
.источник
Использование открытого текста может быть не лучшим выбором, если пароль когда-либо используется как-то еще.
Я поддерживаю принятый ответ, но у меня он не сработал - по очень конкретной причине: я хотел использовать либо хранилища паролей,
kwallet
либоgnome-keyring
. Я попытался изменить настройки во всех четырех файлах:Даже после того, как все было установлено одинаково, с
password-stores
и именем KWallet (по умолчанию может быть неправильным, верно?) Он не работал и постоянно запрашивал пароль. Файлы в~/.subversion
имеют разрешения 600.Что ж, в этот момент вы можете попробовать проверить одну простую вещь:
Если вы получите:
тогда вы можете с большой вероятностью подозревать, что этот клиент был создан из исходного кода локально вашим администратором (который может быть вами, как в моем случае).
Subversion - неприятный зверь для компиляции , очень легко случайно собрать без поддержки HTTP или - как в моем примере - без поддержки зашифрованных хранилищ паролей (вам нужны файлы разработки Gnome или KDE, и многие из них!). Но
./configure
сценарий вам этого не скажет, и вы получите менее функциональнуюsvn
команду.В этом случае вы можете вернуться к клиенту, который был в вашем дистрибутиве, обычно в формате
/usr/bin/svn
. Обратной стороной является то, что вам, вероятно, придется перепроверить рабочие копии, так какsvn downgrade
команды нет . В любом случае вы можете посоветоваться с Линусом Торвальдсом о том, что думать о Subversion;)источник
Чтобы добавить к ответу Хита: похоже, что Subversion 1.6 отключила сохранение паролей по умолчанию, если не может хранить их в зашифрованном виде. Вы можете разрешить хранение незашифрованных паролей, явно установив
password-stores =
(то есть пустое значение) в~/.subversion/config
.Чтобы узнать, какое хранилище паролей использует Subversion, загляните в
~/.subversion/auth/svn.simple
. Он содержит несколько файлов, каждый из которых представляет собой хеш-таблицу с простой кодировкой ключ / значение. Символsvn:realmstring
в каждом файле указывает, для какой области предназначен этот файл. Если в файле естьзатем он сохраняет пароль в виде обычного текста где-нибудь в этом файле в
K 8 password
записи. В противном случае он пытается использовать один из настроенныхpassword-stores
.источник
Все упомянутые здесь методы у меня не работают. Я создал Subversion из исходного кода и обнаружил, что
--enable-plaintext-password-storage
для поддержки этой функции мне нужно запустить configure с .источник
Чтобы подчеркнуть, что Томаш Гандор и Домен сказали о наличии правильной версии svn и о том, что она была скомпилирована для включения хранения паролей в виде простого текста, вам необходимо проверить, что у вас есть:
Против:
Как только вы увидите, что ваша версия svn была включена для хранения паролей в виде простого текста, примените все остальные ответы здесь.
источник
Я использую TortoiseSVN клиент на Windows, и для меня, установив параметр кладовых паролей , как да в
%USERPROFILE%\AppData\Roaming\Subversion\config
не помогают сохранять пароль.Пароль был успешно сохранен после удаления этой папки (на всякий случай переименования):
Окружающая среда:
источник
К сожалению, ответы не решили проблему запроса пароля для ssh + svn с защищенным закрытым ключом. После некоторых исследований я обнаружил:
утилита, если у вас компьютер Linux. Убедитесь, что у вас есть ключи,
/home/username/.ssh/
и введите эту команду в Терминале.источник