如果 SSH 需要私钥,我该如何克隆 Mercurial 存储库?
我尝试按照以下方法操作,但没有效果。
dukeimg@localhost:~/foo/test$ hg clone --ssh -i ~/keys/dukeimg ssh://[email protected]/www/bar/
abort: /home/dukeimg/keys/dukeimg: not a Mercurial bundle
答案1
您正在尝试使用带有 的ssh
命令行 ( -i
) 选项hg
。它不受支持。由于hg
不支持此选项,它会在 处查找要克隆的存储库~/keys/dukeimg
。
有三种可能的解决方案:
- 使用 SSH 密钥代理。
将 Mercurial 设置为使用自定义 SSH 命令行(
hgrc
):[ui] ssh = ssh -i ~/keys/dukeimg
设置 SSH 客户端以使用您的主机的公钥(
ssh_config
):Host example.com User my-ssh-user IdentityFile ~/keys/dukeimg
--ssh
/选项-e
的使用方式如下:
hg -e 'ssh -whatever -option' ...