浏览 18923 次
锁定老帖子 主题:CVSNT+SSH HowTo
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-07-27
进入正题,安装步骤分 3 步: 1、安装 CVSNT 并且可以正常使用 pserver 协议登录。 CVSNT 从这里下载: http://www.cvsnt.com 详细的安装步骤请看: http://www.cvsnt.org/wiki/InstallationTips 要注意使用 persver 协议支持建立别名(alias),映射到某个真实的系统用户,然后使用别名来登录。但是使用 ssh 协议并不支持别名,所以为了以下步骤的顺利完成,在这一步一定不要使用别名,而要使用真实的系统用户。另外为了安全起见,CVS Repository 一定要安装在 NTFS 分区之上。 2、安装 copSSH 并且可以正常使用 ssh 客户端登录服务器。 copSSH 是基于 Cygwin 中的 OpenSSH 服务器/客户端工具发展起来的开源软件。copSSH 可以从这里下载,安装步骤也在这里: http://www.itefix.no/phpws/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=12&MMN_position=22:22 安装完 copSSH 后一定要首先激活用户,然后使用这个用户来登录,例如: ssh Administrator@127.0.0.1 如果登录成功就说明 SSH Server 已经正常运行了。 上面两步顺利完成后,你应该看到这 3 个服务: CVSNT Dispatch Service CVSNT Locking Service Openssh SSHD 3、集成 CVSNT 和 copSSH 现在 CVSNT 服务器已经可以支持使用 ssh 协议来登录了。 不过如果你明白 CVSNT 支持 ssh 的工作原理的话,你会知道其实就是首先用 ssh 客户端登录,然后在服务器端使用 cvs server 命令来执行提交等操作(sever 是 cvs 的一个命令,可以查看 cvs 手册)。 cvs client <-------ssh------> cvs server <---> cvs repository cvs 命令在两端同时运行,服务器端运行的 cvs 构成客户端运行的 cvs 的代理。 如果 ssh 服务器无法找到 cvs 这个命令,那么就无法执行相应的操作。 为了做到这一点,需要把以下文件 copy 到 copSSH 安装目录下: C:\Program Files\copssh\bin cvs.exe cvsapi.dll dbghelp.dll expat.dll msvcp71.dll msvcr71.dll 现在服务器端要做的事情都做完了,下面是客户端的配置。 使用 CVSNT 自带的 cvs.exe,可以使用 ssh 协议登录,CVSNT 带有的 plink.dll 就是 ssh 客户端,可以被 cvs.exe 直接调用。 set CVSROOT=:ssh:user@hostname:/cvsrepo cvs login 登录成功后以后就可以如同使用 pserver 协议一样执行各种 cvs 操作了。 但是我发现目前 CVSNT 自带的 cvs.exe 通过 ssh 和服务器端配合有问题。例如提交文件: cvs ci -m "" 会报告错误。 解决这个问题很简单,在客户端不要使用 CVSNT 自带的 cvs.exe,而使用 cvs 官方提供的 cvs.exe,可以从这里下载: http://www.cvshome.org 但是官方的 cvs.exe 要支持 ssh 不能够直接使用 ssh 协议,而要使用 ext 协议调用外部的 ssh 客户端。copSSH 就带有这样一个客户端。假设 CVSNT 和 copSSH 可执行程序的目录都在 PATH 环境变量中。 set CVS_RSH=ssh set CVSROOT=:ext:user@hostname:/cvsrepo 使用 ext 协议不方便的地方就是不能保存口令,因此任何操作都要输入口令。当然你也可以写一个 .bat 文件很容易地解决这个问题。 现在已经可以使用任何 cvs 客户端通过 ssh 连接 CVSNT 服务器了。 对于 TortoiseCVS,配置方法在这里: http://www.tortoisecvs.org/faq.html#ssh 也是使用 ext 协议调用 ssh 客户端 PuTTy 来进行登录的。 WinCVS 的配置方法可以自行搜索。 在 Eclipse 中可以使用 extssh 协议来登录。要注意 Eclipse 3.0.1 不能很好地支持 CVSNT,因此添加 CVS Repository 的时候会报一个错,忽略掉就可以了。Eclipse 3.1 已经解决了这些问题(不会报错了),对于 CVSNT 有很好的支持,请看: https://bugs.eclipse.org/bugs/show_bug.cgi?id=35961 Eclipse 3.1 的运行速度比 3.0.1 还要快,因此如果版本服务器使用 CVSNT 的话建议升级到 3.1 版。 以上 3 步工作都做好以后,下一步就是采用稳健的安全策略来配置 CVS Repository 的访问权限了。这篇文档里面说得已经很详细了: http://www.cvsnt.org/wiki/SetAcl ssh 协议配置好了以后,可以删除掉 CVSNT 所支持的那些不安全的协议,方法很简单,直接删除掉 CVSNT 安装目录中的 xxx_protocol.dll 就可以了。例如我只保留了一个 ssh_protocol.dll。 That's it, have fun! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-07-28
不好意思,看来是我自己犯了一点错误。CVSNT 带的 cvs.exe 是可以使用 ssh 协议与 CVSNT 服务器正常通信的。首先保证其所在目录出现在 PATH 环境变量的靠前位置(小心可能有几个地方都有 cvs.exe)。
set CVSROOT=:ssh:user@hostname:/cvsrepo cvs login 以后的操作就和使用 pserver 协议是完全一样的了。 TortoiseCVS 同样也支持 ssh 和 ext 两种协议来访问 CVSNT Server,因为 TortoiseCVS 中的 cvs.exe 本来就是来自于 CVSNT 项目。 |
|
返回顶楼 | |
发表时间:2005-09-10
CVSNT 还可以与这个 ssh Server 搭配使用,以支持 ssh 协议登录。
http://www.freesshd.com 这个 ssh server 使用起来更简单,还有图形化的配置界面,我就不详细介绍了。这个工具是 telnet server 和 ssh server 的结合体,不过缺省只会启动 ssh server。 CVSNT 可以与 CVSTracNT 搭配使用。不过由于 CVSROOT/history 文件的格式在 CVSNT 2.5.x 中发生了变化,而 CVSTracNT 现有版本只能分析老版本的 CVSROOT/history 文件格式,以获得 CVSNT 中的文件名称。CVSTracNT 测试过可以配合使用的 CVSNT 最高的版本是 CVSNT 2.0.58d,因此如果希望与 CVSTracNT 搭配使用,不能使用最高版本的 CVSNT。 CVSTracNT 就是 CVSTrac 的 Windows 移植版本(使用 Cygwin ),维护者是 cnpack 开发团队。可以从这里下载: http://www.cnpack.org/download/CVSTracNT.exe 网站上还有 CVSTrac 管理员手册和用户手册的中文版。还有相关的论坛: http://bbs.cnpack.org/forumdisplay.php?fid=20&page= CVSTracNT 的功能主要包括: 1、填写任务单,分配任务。 2、问题跟踪。 3、知识共享的 Wiki。 4、浏览 CVS 目录和文件。 这样,支持 ssh 协议的 CVSNT + CVSTracNT 就构成了一个配置管理系统中的版本管理和问题跟踪系统。另外一部分创建管理可以使用 Ant 或者 Maven 来实现,这些工具构成了支持持续集成的基础设施,可以有效地提高我们的开发效率。 CVS、CVSTrac 的最佳运行平台肯定是 Linux,在 Windows 上面配置的难度要远远大于 Linux,而且性能也不如 Linux。但是对于那些没有熟悉 Linux 的开发人员的团队,引入一台 Linux 服务器显然增加了复杂度,所以还是有必要在 Windows 上面建立相应的开发环境的。关于这些工具的安装、使用、权限管理等等问题,可以直接找我咨询。 |
|
返回顶楼 | |
发表时间:2005-09-18
经测试,freeSSHd 不能与 Eclipse 的 CVS 客户端共同使用,而使用 TortoiseCVS 则没有问题。
初步结论是这个 freeSSHd 目前还只支持 ssh1 登录,不支持 ssh2 登录,而 Eclipse 的 CVS 客户端使用 extssh 协议访问服务器时只支持 ssh2 登录。 所以为了使用 Eclipse 的 CVS 客户端(这个确实是我用过的功能最强大的 CVS 客户端),上面介绍的两个 ssh server 只能使用 copSSH。这个就是著名的开源软件 OpenSSH 的 Windows 移植版本,功能和稳定性都是有保障的。 另外还可以从这里下载另外一个 OpenSSH 的 Windows 移植版本,用法安装后看看 readme.txt。这个版本与 CVSNT 配合起来比 copSSH 更好,与 Eclipse 的 CVS 客户端配合使用也没有问题。其实这两个项目都是起源自 Cygwin 中的 ssh server,因此功能和稳定性上都是一样的。 http://sshwindows.sourceforge.net/ |
|
返回顶楼 | |
发表时间:2005-10-13
好文章,正好需要,是在太谢谢dlee了
|
|
返回顶楼 | |
发表时间:2006-03-18
在Windows上走ssh协议太麻烦了,研究一下sserver
|
|
返回顶楼 | |