本文介绍如何在Linux或*nix类的命令行工作台下,实现Mercurial客户端命令hg与mercurial-server的无密码输入安全连接。所用的主要工具是:ssh-agent。

1. 创建你的RSA密钥对cd ~/.ssh-keygen -t rsa

然后,对自己系统用户密钥对存放目录.ssh的权限进行安全调整:

chmod 700 $HOME/.sshchmod 600 $HOME/.ssh/id_rsa

注:下面操作假设你自己的系统用户的.ssh目录下保存的密钥对是:id_rsa(私钥)和id_rsa.pub(公钥)。

2. 把公钥发送给代码库管理员

从你的.ssh/目录下找到id_rsa.pub,发送给mercurial-server系统管理员。系统管理员确认已配置好你的用户-代码库权限。

3. 用ssh-agent缓存你的私钥

通过ssh-agent,你可将上述步骤中生成的私钥缓存到内存中,当Mercurial客户端命令hg与代码库服务器交互时,你的shell环境即可自动通过ssh-agent拿出你的RSA私钥,通过SSH2连接与服务器进行身份验证、加密/解密的操作。

启动ssh-agent:

eval $(ssh-agent)

把私钥交给ssh-agent缓存,因为是第一次操作密钥,系统会提示输入密钥安全密码:

ssh-add ~/.ssh/id_rsa

用hg命令直接与mercurial-server代码库进行交互。此时,系统不应该提示输入密钥安全密码。例如:把本地代码库用hg clone命令复制到服务器端(创建服务器端代码库,如果你有init权限的话):

hg clone myrepo ssh://hg@mycompany_hg_repo_host.com/myrepo

当你完成与代码库服务器交互操作后,可运行一下命令终止ssh-agent的运行:

ssh-agent -k
本文转载自 http://www.bookandman.com/mercurial-tutorial/mercurial-client-linux/
02-06 00:36