Chinaunix首页 | 论坛 | 博客
  • 博客访问: 469103
  • 博文数量: 95
  • 博客积分: 2117
  • 博客等级: 大尉
  • 技术积分: 2301
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-16 21:10
个人简介

辽宁铁岭人,现居大连。1970年生。 先后供职于 中国国际海运网、大连学堂科技、大连华仁视线网络科技有限公司、大连中科海云科技有限公司,任职技术总监。 精通PHP、JAVA、Javascript、HTML、CSS等网络编程技术及Linux操作系统。 精通面向对象编程、设计模式、重构及互联网产品设计。

文章分类

全部博文(95)

文章存档

2013年(31)

2012年(2)

2011年(34)

2010年(25)

2008年(3)

分类: LINUX

2011-10-11 15:41:51

基于分布式版本控制工具Mercurial的开发团队不一定需要一个统一的服务器端代码库。每个团队成员仅仅依靠TortoiseHG已足够支持代 码共享、分支、合并等版本控制操作。对于利用分布式版本工具的企业开发团队而言,通过服务器共享统一的代码库有助于产品集成测试、发布自动化以及产品部署 等工作流的控制和改进。

本文介绍如何用TortoiseHG,一个流行的、基于Windows的Mercurial客户端软件,通过SSH2加密通道与(团队共享的)Mercurial-server服务器端代码库进行交互。服务器端mercurial-server的配置已在“Mercurial服务器”介绍。利用Linux作为工作桌面的用户可参考“Linux客户端”中的指引。

本文介绍的Windows客户端配置背后的原理如下:
1) TortoiseHG通过自带的TortoisePlink.exe实现SSH2加密通信,
2) 代码库授权用户通过Pageant.exe辅助RSA非对称加密方式的自动身份认证,
3) 每个代码库用户的RSA密钥对应由自己通过PuttyGen.exe生成并把公钥提交给Mercurial-server管理员以进行服务器端的身份认证和权限配置。

1. 获取客户端软件

2. 用户生成自己的RSA密钥对

本方案采用的mercurial-server依靠RSA密钥对进行用户身份认证和权限分配。所以,很显然每个用户都首先要为自己生成RSA密钥对(一个私钥+一个对应的公钥)。步骤如下:

# 下载并运行,生成可用于OpenSSH2的密钥对

# 生成RSA密钥对

如下图所示,点选Generate开始生产RSA密钥对,Parameters下面的选项可选取加密算法和密钥长度,一般用默认的即可。

# 保存RSA密钥对

密钥对生产后将看到以下界面。强烈建议为你的私钥添加passphrase(密码),这样每次使用密钥时系统都会提示你输入打开密钥的密码。这是本方案的安全机制中最薄弱的环节,操作时务必认真谨慎

点选Save publick key可将已生成的密钥对中的“公钥”导出到一个文件,建议命名方式为:user@mycompany.com-pub-key。此公钥将需发送给mercurial-server系统管理员以便进行代码库权限配置。

点选Save private key可将已生成的密钥对中的“私钥”导出到一个文件,建议命名方式为:user@mycompany.com-secret-.ppk。此密钥必须妥善保存,最好复制到USB盘后从硬盘删除。用户在以后每次使用TortoiseHG与服务器通信时,将使用Pageant.exe密钥代理导入此密钥,这样你每次通过TortoiseHG与服务器通信就不用输入任何密码。

3. 提交RSA公钥给代码库管理员

代码库管理员依靠你的公钥让mercurial-server认证你的身份,并用来配置对应的用户-代码库权限。

4. 将私钥通过导入内存

每次通过TortoiseHG与服务器代码库进行交互前,都必须通过pageant.exe将用户的私钥导入内存/缓存。第一次导入时会提示输入 RSA密钥打开密码,之后只要pageant.exe没退出,用户的密钥就会一直缓存到内存中,方便TortoiseHG进行SSH2加密通信时自动取 用。

5. 测试代码库服务器连接

上述配置完成后,可通过TortoiseHG进行一次clone操作,把类似ssh://hg@my-mercurial-server/my_repo的服务器端的代码库复制一份到本地计算机,以便测试上述配置是否已成功。

6. 开始使用TortoiseHG与团队协同工作

当你的团队的mercurial-server、团队用户帐号、代码库都配置好后,即可开始利用此方案进行软件开发。如上面提到的,分布式版本控制 支持十分灵活的工作流,本方案设立的开发环境一般可用来支持QA阶段的测试,以及各功能模块的集成测试,甚至围绕mercurial服务器构造团队自己的 产品版本/阶段测试环境(stage server),直至你的产品正式发布、或者让新功能/功能改进自动融合到生产环境中。

7. 参考资料
  • ,搞懂这个后你将可以通过SSH加密通道访问防火墙背后的mercurial-server代码库
本文转载自 http://www.bookandman.com/mercurial-tutorial/mercurial-tutorial-client/
阅读(1276) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~