【问题标题】:Store password in TortoiseHg在 TortoiseHg 中存储密码
【发布时间】:2011-01-01 03:22:53
【问题描述】:

有没有办法配置TortoiseHg 来存储我的密码?

我有一个托管在Google Code 上的项目,我使用 TortoiseHg 访问该项目。每当我想将更改推送到 Google 代码时,TortoiseHg 都会提示我输入用户名和密码。 Google Code 要求我使用自动生成的密码,而且每次查找都会非常重复。

【问题讨论】:

    标签: mercurial tortoisehg google-code


    【解决方案1】:

    现有的两个答案都建议将您的用户名和密码未加密存储在纯文本中,这有点禁忌。

    您应该改用Keyring 扩展名,因为它专为安全保存身份验证密码而设计。它已经与TortoiseHg 捆绑在一起,因此您只需在 mercurial.ini 文件中写入以下内容即可激活它:

    [extensions]
    mercurial_keyring=
    

    您还必须通过编辑特定于存储库的 .hg\hgrc 文件将您的用户名与推送 URL 相关联,如下例所示:

    [paths]
    default = https://<your_username>@bitbucket.org/tortoisehg/thg
    

    有关将您的用户名与网址关联的更多详细信息,请参阅Keyring 扩展页面的Repository Configuration (SMTP) 部分。

    【讨论】:

    • 我刚刚尝试了这个解决方案,它在 Windows 7 上运行良好。非常好!谢谢!
    • 对我来说效果很好 - 但我认为您还需要在 [auth] 标题下包含用户名,或者修改存储库的路径,如 username@host (根据上面的 Keyring 链接)
    • 好答案,绝对是要走的路。
    • 如果您使用网络代理,如何保存用户名和密码?
    • 正确的方法是使用 auth 部分来配置用户名。您的回购路径中不应包含身份验证信息,例如[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
    【解决方案2】:

    三步,看screenshot注意:这会以明文形式存储您的密码。

    【讨论】:

    • 看起来这也以明文形式存储密码 - 如果您启用了密钥环扩展,那么密码字段将被禁用
    • 只有在使用 https 协议时才有效,当设置为 http 时,挂锁就会消失。
    • 接受的遗留答案很糟糕,这应该有绿色的chekky!
    【解决方案3】:

    安全警告

    虽然这个答案在 2017 年 9 月 15 日被接受,但它不是推荐的解决方案。您永远不应该以纯文本形式存储您的密码。请改用 mercurial_keyring 扩展名。请在此处查看another answer


    您可以将推送 URL 更改为https://username:password@hostname.com/repo

    这在Google Code'sMercurial's 常见问题解答中有说明。

    编辑:Mercurial FAQ 解释了另一种方法:

    使用 Mercurial 1.3,您还可以在 hgrc 文件中添加 auth 部分: [认证] example.prefix = https://hg.example.net/ example.username = foo example.password = bar

    【讨论】:

    • 这是一个错误的答案!您永远不应该将明文密码存储在任何文件中......!使用 mercurial_keyring 的另一个选项(有更多投票)是唯一正确的做法!
    • +1。考虑到hg push 是非破坏性的(你总是可以hg strip 不需要的变更集),推送到远程存储库几乎不是一个高权限操作。因此,只要知道安全隐患,明文密码存储通常就足够了。
    • 问题不在于有人可以不可挽回地破坏存储库。问题是:(1)人们重复使用密码,所以一旦有人设法访问这个文本文件,他们就能够访问不相关的资源; (2) 任意黑客可能会潜入源代码...... (3) 代码可能是秘密的(并非所有开发都是开源的),被盗并不总是很有趣。
    • @max 1) 理论上可能是正确的,但 OP 明确表示他正在使用自动生成的密码 2) 版本控制停止了这个,你可以看到所有签入的更改,这怎么可能是问题? 3)如果有人可以访问存储在您计算机上的明文密码,他们也可以访问您的代码。密码在这里毫无意义,因为他们可以将您的代码转储到加密狗上。
    • @LarsCorneliussen 这不是一个糟糕的答案。并非每个用例都需要这种级别的安全性。密钥环扩展是一个选项,就像这样。
    【解决方案4】:

    如果你想通过 TortoiseHg 配置它,可以使用 Repository Setting 对话框。 打开对话框后,请切换到“同步”选项卡。 您可以添加带有 HTTPS 身份验证信息的路径。

    http://tortoisehg.bitbucket.io/manual/2.9/settings.html#module-web.settings

    【讨论】:

      【解决方案5】:

      只需修改本地存储库的.hg 目录中的hgrc 文件,使其如下所示:

      [paths]
      default = https://name:password@yourproj.googlecode.com/hg/
      

      其中 name 是您的 Google 代码登录名,没有 gmail/googlemail 位,例如'fredb'(不是 fredb@gmail.com),password 是 Google 生成的密码,yourproj 是您的 GC 项目的名称。所以像:

      default = https://fred:xyz123@fredproj.googlecode.com/hg/
      

      【讨论】:

      • 永远不要以纯文本形式存储密码。绝不!使用 mercurial_keyring - TortoiseHG 然后只要求输入一次密码。
      • 永远不要说永远 :) 是的,SSH 密钥比 Keyring 更可取,Keyring 比明文更可取,但确实有不同的情况。附言赞成“钥匙圈”答案和这个答案。
      【解决方案6】:

      这适用于我使用SSH。我知道密码是纯文本的,但这在这个项目中不是问题。 您必须更改 myUser 和 MyOPas 的凭据和路径:TortoisePlink.exe。 编辑 mercurial.ini

      [reviewboard]
      password = myPass
      [ui]
      username = myUser
      ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw  myPass
      

      【讨论】:

        【解决方案7】:

        如果您想将密码存储在 mercurial.ini 中,并且在升级到 TortoiseHg 4.9 或更高版本后它不再起作用,可能的解决方案是将端口添加到前缀:

        [auth]
        tax.prefix = http://server:8080
        tax.username = cerveser
        tax.password = mypassword
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-24
          • 2019-09-17
          • 1970-01-01
          • 1970-01-01
          • 2010-10-26
          相关资源
          最近更新 更多