通过代理连接到BitBucket

时间:2010-01-12 15:02:18

标签: svn proxy mercurial bitbucket

Hoi,

我尝试 hg pull
来自我在Bitbucket.org上的私人回购 进入我的Windows机器上的本地仓库
从需要Windows身份验证的公司代理后面。

  • 我找到了代理服务器和端口(IE的Internet选项)
  • 我在Mercurial.ini
  • 中找到了设置%USERPROFILE%文件
  • 我已将此部分添加到其中(info):

    [HTTP_PROXY]
    主持人= TheProxyServerTheProxyServerPort
    user = MyWindowsLogin
    passwd = MyWindowsPassword

  • 这有效:

  

C:\路径\到\回购> hg拉
  需要http授权
  领域:Bitbucket.org HTTP
  用户:

在我输入Bitbucket的凭据后,我得到了:

  

搜索更改
  没有发现任何变化

Mercurial.ini中写下密码显然是主要的安全问题(除了因为我们的密码策略而每个月都要更新此文件)。

是否有可能让Mercurial要求代理凭证?
或者以更安全的方式存储这些凭证?

修改

我尝试使用相同的设置和SSH,但我得到了这个:

  

C:\路径\到\回购> hg clone ssh://hg@bitbucket.org/ ME / repo /
  运行“”C:\ Program Files \ TortoiseHg \ TortoisePlink.exe“-ssh -2 hg@bitbucket.org”hg -R ME / repo / serve --stdio“

     

abort:来自远程hg没有合适的回复!

对话框:"PuTTY Fatal Error - Network error: Connection timed out"

EDIT2:

这个问题出现了,因为Subversion正确处理了这种情况:

在Subversion servers文件中,我也指定了代理主机和端口,Subversion自动将Windows身份验证发送给它。在使用例如

通过代理从Web检出来源时,我无需输入或写下我的凭据
  

C:\工作目录> svn checkout http://okarito.googlecode.com/svn/trunk/ okarito-read-only
  ...   检查了修订版5。

提前致谢!

2 个答案:

答案 0 :(得分:5)

另一种方法是运行本地http代理,然后使用您公司的http代理进行身份验证。您可以运行cntlm under Cygwin并在cntlm conf文件中安全地存储NTLMv2哈希。然后,您将http代理设置为localhost:3128,并且不指定用户名或密码。

我的另一个建议是使用TortoiseHg。这将存储您的代理信息,但我不确定它是否安全存储。

答案 1 :(得分:3)

您可以使用--config选项hg,因为这允许您从命令行覆盖配置设置。语法为--config <section>.<name>=<value>,请尝试以下操作:

hg --config http_proxy.passwd=YourWindowsPassword pull

这会将您的密码保留在命令历史记录中,但这可能比Mercurial.ini文件更好。