【问题标题】:Windows Mercurial global keychainWindows Mercurial 全局钥匙串
【发布时间】:2011-09-28 22:06:24
【问题描述】:

我正在尝试让 mercurial 在 Windows 构建服务器上工作,但遇到了问题。我在设置 mercurial 钥匙串时遇到了麻烦(我必须安装 tortoisehg),它在每个用户的基础上工作。

问题是我使用 Bamboo 来运行构建,它作为SYSTEM 拥有的 NT 服务运行。因此,每当它尝试对 hg 进行任何操作时,都会提示输入密码。

显然,我可以将密码放入配置文件中,但我想避免纯文本密码随便乱放。

据我所知,有两种方法可以解决这个问题。我都不知道该怎么做:

  1. 使 mercurial 钥匙串成为全球性的,而不是每个用户。这甚至可能是不可能的。
  2. 以某种方式以 SYSTEM 用户身份登录并对其执行一些反复无常的命令,以便在其钥匙串中植入用户/密码信息。
  3. 完全不同的东西...?

提前感谢您提供的任何见解!

-本

【问题讨论】:

    标签: windows mercurial keychain bamboo


    【解决方案1】:

    我知道您已经找到了解决方案,但如果未来的 Google 员工在这里结束,我会发布我所做的。

    首先,您可以让竹服务以您想要的任何用户身份运行。我需要它以普通用户身份运行,以便我的编译器需要的一些注册表项可用。要为竹子服务设置用户,您需要编辑wrapper.conf(正常安装为C:\Program Files\Bamboo\conf\wrapper.conf)。显然,在编辑此之前,您需要卸载现有服务(如果已安装)。

    设置登录帐户的最简单方法是将其添加到文件底部

    wrapper.ntservice.account=domain\username
    wrapper.ntservice.password=s3cr3t.p@ssw0rd
    

    显然,您可能不希望将登录密码保存在纯文本文件中。有几种方法可以解决这个问题,所以我只指出:http://wrapper.tanukisoftware.com/doc/english/props-nt.htmlwrapper.ntservice.password.prompt 可能特别感兴趣。

    如果您对 Mercurial 使用 ssh,还有另一个选择:您可以在 Mercurial.ini 中设置您的 ssh 命令。对于构建服务器,我通过在 C:\Program Files\TortoiseHg\hgrc.d 中的文件中配置它们来一次性为整个系统设置大部分这些命令。我有一条看起来像这样的线:

    ssh=TortoisePlink.exe -batch -i "C:/Users/autobuilder/hgPrivKey.ppk" -l autobuilder
    

    对我来说,autobuilder 是运行事物的普通用户。 hgPrivKey.ppk 是使用 PuttyGen 创建的私钥文件。我在服务器上的 authorized_keys 文件中有公钥。

    希望这些建议能让某人走上正轨。

    【讨论】:

    • 不错!当我有空闲时间时,我将不得不重新访问并尝试一下。
    • 在以自定义用户身份运行时还要注意这个问题:代理包装器messes with the environment 这样PATH 变量将不包含所需的路径,而USERNAME 变量将lie to you 并报告系统。然而,这一切都应该是fixed in 6.10
    【解决方案2】:

    我最终不得不将竹远程代理从 NT 服务恢复为在普通用户下运行的常规旧进程。就服务器管理而言,这显然带有自己的一套陷阱,但现在必须这样做。除非有人想出更好的办法,否则我会在一天左右的时间内将此标记为答案。

    【讨论】:

      猜你喜欢
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多