本文介绍如何在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/