您的位置:首页 > 其它

提供cvs only的ssh服务

2004-07-24 21:31 316 查看
摘抄自http://www.akeysoft.com

今天配置了通过ssh提供的cvs服务:

安装了sshd后,创建使用cvs的帐户。不过这些帐户的开通使得cvs的用户可以通过ssh登录到cvs服务器上执行命令。为了限制cvs用户只能通过ssh使用cvs功能,我用Google找到了两个方法。

方法一:关闭ssh的密码认证功能,让ssh服务必须通过密钥(证书)认证,并在服务器上的认证证书文件的证书前加上command选项限制ssh登录后的执行命令。这个方法不太好,用户通过ssh连接到服务器后,就进入cvs的服务命令状态,没有任何提示。

方法二:建立一个脚本作为用户登录后的shell,脚本的内容为判定执行的命令,如果是cvs命令则执行,否则显示提示信息后退出。我选择了这个方法,建立了下面的脚本文件(文件名为cvsonly):

#!/bin/sh

if [ "$*" != "-c cvs server" ]; then
echo "CVS Only!";
exit;
fi;
cvs server

脚本存放在/usr/local/bin下,通过chmod 755加上执行权限。

然后在/etc/passwd中将只允许使用ssh访问cvs的用户的shell替换成上面的脚本即可。

在cygwin上也可以用类似的方式进行配置。(实际上我就是在cygwin环境下这样配置的,Linux上反而还没有试验。)

另外,为了更加安全可以在上面的脚本的最后一行cvs server后加参数--allow-root,防止cvs访问cvsroot之外的文件系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: