Mercurial,按密钥验证

zer*_*kms 8 ssh mercurial

我的~/.hgrc配置文件中有这样的部分

[auth]
repo.prefix = ssh://hguser@192.168.132.72/repos
repo.key = /home/zerkms/.ssh/mercurial-repo/id_rsa
Run Code Online (Sandbox Code Playgroud)

但是当我写道:

hg clone ssh://hguser@192.168.132.72/repos/rps .
Run Code Online (Sandbox Code Playgroud)

mercurial仍然需要输入密码.

我做错了什么?

为了防止明显的问题:

是的,在指定的路径中有一个有效的密钥,如果使用它,它就可以工作ssh-agent.

我的问题是如何在[auth]部分中使用键.

Åsm*_*und 14

以下对我有用(可能是问题以来的新设置):

添加到hgrc:

[ui]
ssh = ssh -C -i ~/.ssh/id_rsa-mercurialkey
Run Code Online (Sandbox Code Playgroud)

-C启用压缩,-i指定身份文件.如果密钥被加载到ssh-agent中,我不会再被问到密码短语.


Chr*_*gan 11

auth不适用于SSH.密钥需要以另一种方式加载.如果它只是〜/ .ssh/id_rsa它将自动完成,因为它不是你可能需要做一些事情来注册它.使用〜/ .ssh/id_rsa通常是最简单的方法 - 将~/.ssh/id_rsa.pubin 的内容~/.ssh/authorized_keys放在目标机器上,然后就可以了.

  • zerkms:如果你需要几个不同的密钥,可以使用`〜/ .ssh/config`中的IdentityFile设置(参见`man ssh_config`)或`hg clone --ssh"ssh -i~/.ssh /来配置它.你的钥匙"......". (19认同)
  • @MartinGeisler 你真的应该回答这个问题。 (2认同)