Mercurial Keyring запрашивает пароль каждый раз
Я использую расширение Mercurial Key-Ring для хранения пароля в моем удаленном репозитории в BitBucket, поэтому мне не нужно вводить его каждый раз, когда я отправляю в удаленный репозиторий. По иронии судьбы, он просит у меня пароль, чтобы разблокировать кольцо для ключей каждый раз, когда мне нужно получить к нему доступ; тем самым полностью смягчая свою цель для меня. Что я делаю неправильно?
В моей глобальной конфигурации Mercurial (~/.hgrc) у меня есть следующие строки:
[extensions]
hgext.mercurial_keyring = /etc/mercurial/mercurial_keyring.py
В моем репозитории Mercurial (.hg/hgrc) у меня есть:
[paths]
default = https://username@bitbucket.org/username/repo
Пример:
> hg out
> comparing with https://username@bitbucket.org/username/repo
> Please enter password for encrypted keyring:
Я попытался удалить брелок и повторил попытку. Я также играл с настройками конфигурации, которые я нашел онлайн, но безрезультатно. Я также не мог найти что-нибудь о зашифрованном и незашифрованном брелоке в отношении Mercurial.
Как я могу получить его, чтобы мне вообще не приходилось вводить пароль при выполнении действий с удаленным репо?
1 ответ
Я не знаю, было ли это уже так в то время, когда был задан вопрос, но теперь решение напрямую объясняется в вики-ссылке расширения keyring в вашем вопросе.
Недостаточно просто включить расширение связки ключей, вам также необходимо указать Mercurial удаленное репо и имя пользователя в файле конфигурации.
Цитата по ссылке:
3.2. Конфигурация репозитория (HTTP)
Изменить локальный репозиторий
.hg/hgrc
и сохраните там путь к удаленному репозиторию и имя пользователя, но не сохраняйте пароль. Например:[paths] myremote = https://my.server.com/hgrepo/someproject [auth] myremote.schemes = http https myremote.prefix = my.server.com/hgrepo myremote.username = mekk
Также можно использовать более простую форму с именем, встроенным в URL:
[paths] bitbucket = https://User@bitbucket.org/User/project_name/
Примечание: если и имя пользователя, и пароль указаны в
.hg/hgrc
, расширение будет использовать их без использования базы данных паролей. Если имя пользователя не указано, расширение будет запрашивать учетные данные каждый раз, также без сохранения пароля. Таким образом, в обоих случаях он фактически возвращается к поведению по умолчанию.
Обратите внимание, что вам не нужно указывать всю информацию, показанную в этих примерах.
На моей машине (Mercurial 5.0.2 в Windows) я использую более простую форму, которая также работает для нескольких репозиториев.
Это копия 1:1 из моего фактического файла конфигурации:
[extensions]
mercurial_keyring =
[auth]
bb.prefix = https://bitbucket.org/
bb.username = christianspecht
При этом используется расширение связки ключей, чтобы сохранить пароль для пользователя. christianspecht
для всех удаленных репозиториев, URL-адрес которых начинается с https://bitbucket.org/
.
Префикс bb
можно свободно выбирать, поэтому вы можете использовать его для одновременного сохранения нескольких URL / имен пользователей.
Это работает отлично (по крайней мере, до тех пор, пока Bitbucket не прекратит поддержку Mercurial через несколько недель...) - он запрашивает пароль один раз, затем автоматически сохраняется и больше никогда не запрашивает.
он просит у меня пароль, чтобы разблокировать кольцо для ключей. Что я делаю неправильно?
Ничего такого. Прочитайте документы по связке ключей, пароль для доступа к связке ключей должен быть предоставлен один раз для сеанса