Windows Mercurial全球钥匙串

我正在尝试在Windows构build服务器上运行mercurial,并遇到问题。 我去了设置mercurial keychain(我不得不安装tortoisehg)的麻烦,它在每个用户的基础上工作。

问题是我正在使用Bamboo运行构build,并且它作为SYSTEM拥有的NT服务运行。 因此,任何时候它试图用hg做任何事情,都会提示input密码。

显然,我可以把密码放在一个configuration文件中,但是我想避免一个明文密码就在旁边。

据我所知,攻击这个问题有两种方法。 我不知道该怎么做:

  1. 让mercurial keychain成为全球,而不是每个用户。 这可能不可能。
  2. 以某种方式以SYSTEM用户身份login,并使用它执行一些mercurial命令,以便其钥匙串获得用户/密码信息。
  3. 完全不同的东西…?

预先感谢您的任何见解!

-ben

Solutions Collecting From Web of "Windows Mercurial全球钥匙串"

我意识到你已经找到了解决方案,但是如果未来的Google员工在这里结束工作,我会发布我所做的。

首先,您可以让Bamboo服务以您想要的任何用户身份运行。 我需要它作为普通用户运行,以便我的编译器需要的一些注册表项可用。 要为竹服务设置用户,需要编辑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.html 。 wrapper.ntservice.password.prompt可能是特别感兴趣的。

如果你使用ssh作为Mercurial,还有另外一个选择:你可以在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文件中有公钥。

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

我最终不得不将远程代理从一个NT服务恢复到普通用户正常运行的旧进程。 就服务器的管理而言,这显然伴随着自己的一套陷阱,但现在还得做。 除非有人提出更好的建议,否则我会在一天左右将其标记为答案。