每次使用Mercurial时,ssh都不会要求输入密码

时间:2011-05-25 04:59:33

标签: mercurial ssh

我是一个Mercurial新手,我刚刚开始使用它。

我在本地存储库工作,当我提交更改时,我使用hg <command> ssh://user@host/usr/www/site.com/project来推送,拉动并查看传入/传出更改。

但每次ssh问我密码。有没有办法记住我的ssh密码为此目的?另外,每次完整命令(ssh:// user etc etc)时我怎么不写?

1 个答案:

答案 0 :(得分:4)

您必须使用公钥设置ssh。网上有很多教程,例如见Getting started with SSH

准备好密钥后,您可以使用ssh-agent仅在每个会话中输入一次本地私钥密码。还有一些GUI工具充当ssh-agent(例如Mac上的SSHKeychain

如果您的安全要求较低,您也可以在没有密码的情况下生成密钥。

但请不要在配置文件中存储明文密码。

有两种方法可以避免在每个命令上键入url:

来自hg help urls

These URLs can all be stored in your hgrc with path aliases under the
[paths] section like so:

  [paths]
  alias1 = URL1
  alias2 = URL2
  ...

另一种可能是使用默认路径:

default:
  When you create a repository with hg clone, the clone command saves the
  location of the source repository as the new repository's 'default'
  path. This is then used when you omit path from push- and pull-like
  commands (including incoming and outgoing).

这就是我经常使用的东西,因为通常你会从某个地方获得你的工作目录托架克隆,从那以后我就不指定url并使用默认值。