Mercurial Keyring每次提示输入密码

时间:2014-12-17 19:37:58

标签: version-control mercurial mercurial-keyring

我使用mercurial key-ring extension将密码存储到BitBucket上的远程存储库中,所以每次推送到远程存储库时我都不必输入密码。具有讽刺意味的是,每当我需要访问它时,它会要求我输入密码来解锁密钥环;从而完全减轻了我对它的目的。我做错了什么?

在我的全局mercurial配置(〜/ .hgrc)中,我有以下几行:

[extensions]
hgext.mercurial_keyring = /etc/mercurial/mercurial_keyring.py

在我的repo mercurial config(.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,我也无法在加密密钥环和非加密密钥环上找到任何内容。

当我对远程仓库执行操作时,如何才能完成输入密码?

2 个答案:

答案 0 :(得分:0)

我不知道在问问题时是否已经是这种情况,但是现在在keyring extension wiki link in your question中直接说明了解决方案。

仅启用密钥环扩展是不够的,您还需要告诉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中给出,则 扩展程序将使用它们而不使用密码数据库。如果 没有提供用户名,扩展名将提示输入凭据 时间,也无需保存密码。因此,在两种情况下 有效地恢复为默认行为。


请注意,您无需指定所有所有这些示例中显示的信息。

在我的计算机上(Windows上为Merurial 5.0.2),我使用的是更简单的表单,该表单也适用于多个存储库。
这是我实际配置文件中的1:1副本:

[extensions]
mercurial_keyring = 

[auth]
bb.prefix = https://bitbucket.org/
bb.username = christianspecht

此操作使用密钥环扩展名为URL以christianspecht开头的所有远程存储库保存用户https://bitbucket.org/的密码。

前缀bb可以自由选择,因此您可以使用它一次保存多个URL /用户名。

这非常好用((至少直到Bitbucket在几周内放弃Mercurial支持...)-它要求输入一次密码,然后自动将其保存,并且不再要求输入密码。 >

答案 1 :(得分:-1)

  

它要求我输入密码来解锁钥匙圈。我做错了什么?

无。阅读keyring docs,密码以访问密钥环 必须提供一次会话