我在我的项目中使用 mercurial,每次我通过 ssh 将新的变更集推送到服务器时,它都会要求我输入密码。
那么如何配置 mercurial 在不询问密码的情况下推送呢?
我在 Ubuntu 9.10 上工作
在 Linux 和 Mac 上,使用ssh-agent
.
man ssh-keygen
详细信息)~/.ssh/id_dsa.pub
)复制到远程计算机,并为其指定一个唯一名称(例如myhost_key.pub
)~/.ssh/authorized_keys
文件中ssh-add
以将您的密钥添加到钥匙串您现在可以hg
在此会话中使用任何远程命令,而无需进行身份验证。
假设您使用的是 Windows,请阅读我的Mercurial/SSH 指南。在帖子的底部,您会找到有关如何使用PuTTy为您执行此操作的信息。
编辑:-这是我正在谈论的帖子的一部分(请记住,您需要在已加载密钥的情况下运行选美才能使其正常工作):
如果您还没有,请确保使用默认设置在客户端计算机上安装 Mercurial。确保告诉安装程序将 Mercurial 路径添加到系统 PATH。
客户端配置的最后一步是告诉 Mercurial 在使用 SSH 时使用 PuTTy 工具。Mercurial 可以通过名为 .hgrc 的用户特定配置文件进行配置。在 Windows 上,它也可以称为 Mercurial.ini。该文件位于您的主文件夹中。如果您不知道您的主文件夹是什么,只需打开命令提示符并键入 echo %USERPROFILE% - 这将告诉您路径。
如果您尚未设置配置,则配置文件可能不存在。所以你必须创建它。在您的主文件夹中手动创建一个名为 .hgrc 或 Mercurial.ini 的文件,然后在文本编辑器中打开它。这是我的一部分的样子:
[ui]
username = OJ Reeves
editor = vim
ssh = plink -ssh -i "C:/path/to/key/id_rsa.ppk" -C -agent
最后一行是关键,这是您确保正确设置所需的。我们告诉 Mercurial 使用 plink 程序。这也与 PuTTy 一起提供,是 PuTTY 程序本身在幕后所做的命令行版本。我们还添加了一些参数:
客户现在准备好摇滚了!
安装腻子。
如果您使用的是 Windows,projectdir/.hg/hgrc
请在您喜欢的文本编辑器中打开。编辑它看起来像这样:
[paths]
default = ssh://hg@bitbucket.org/name/project
[ui]
username = Your Name <your@email.com>
ssh = "C:\Program Files (x86)\PuTTY\plink.exe" -ssh -i "C:\path\to\your\private_key.ppk" -C -agent
如果推送需要很长时间,服务器可能会尝试向您提问(但未显示)。
运行这个:
"C:\Program Files (x86)\PuTTY\plink.exe" -T hg@bitbucket.org -i "C:\Program Files (x86)\PuTTY\plink.exe" -ssh -i "C:\path\to\your\private_key.ppk"
回答任何问题,然后再次尝试推送。
如果您使用的是 Bitbucket,请使用 puttygen 打开您的私钥,从顶部文本框中复制您的公钥,然后将其添加到您的用户帐户:https ://bitbucket.org/account/user/USERNAME/ssh-keys/