如何配置mercurial推送而不通过ssh询问我的密码?

Cro*_*lio 6 passwords ssh mercurial hgrc

我在我的项目中使用mercurial,每次我通过ssh将新的更改集推送到服务器时,它会要求我输入密码.
然后如何配置mercurial推出没有问密码?

我在Ubuntu 9.10上工作

gav*_*inb 13

在Linux和Mac上,使用ssh-agent.

  1. 确保您有一个ssh密钥对(man ssh-keygen有关详细信息,请参阅参考资料)
  2. 将您的公钥(从~/.ssh/id_dsa.pub)复制到远程计算机,为其指定一个唯一的名称(例如myhost_key.pub)
  3. 正常登录到远程计算机并将刚刚复制的公钥附加到~/.ssh/authorized_keys文件中
  4. ssh-add在本地工作站上运行,将密钥添加到钥匙串

您现在可以hg在此会话中使用任何远程命令,而无需身份验证.


OJ.*_*OJ. 9

假设您使用的是Windows,请阅读我的Mercurial/SSH指南.在帖子的底部,您将找到有关如何使用PuTTy为您执行此操作的信息.

编辑: - 这是我正在谈论的帖子的一部分(请记住,您需要使用已加载的密钥运行选美才能使其工作):


客户:设置Mercurial

如果您还没有,请确保使用默认设置在客户端计算机上安装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
Run Code Online (Sandbox Code Playgroud)

最后一行是关键,这是你需要确保正确设置的.我们告诉Mercurial使用plink程序.这也是PuTTy,它是PuTTY程序本身在幕后所做的命令行版本.我们还添加了一些参数:

  • -ssh:表示我们正在使用SSH协议.
  • -i"file.ppk":指定我们要用于登录远程服务器的私钥文件的位置.将其更改为指向当地与putty兼容的ppk私钥.确保您也为路径分隔符使用正斜杠!
  • -C:此开关启用压缩.
  • -agent:这告诉plink与pageant实用程序交谈以获取密钥的密码,而不是以交互方式请求它.

客户现在已准备好摇滚!