Subversion svn + ssh访问并禁止通过SSH从服务器复制文件

时间:2012-09-08 15:53:20

标签: linux svn ssh

系统环境:

服务器:Centos 6.2

客户端:Windows + TortoiseSVN + putty

我在centos中安装了subversion,在服务器上创建了存储库,并使用密钥身份验证配置了svn + ssh访问方式。一切正常。 但我对使用svn + ssh模式的svn用户有疑问。

svn用户有一个ssh密钥,因此他可以访问subversion服务器,当然他也可以使用密钥身份验证通过SSH访问Centos服务器。此外,他可以使用类似于SSH的WinSCP工具从centos服务器复制subversion存储库文件(特别是/ db文件)。 所以,我想知道是否有一种方法让svn用户只能通过svn + ssh访问svn存储库,并且无法通过ssh访问直接从centos复制存储库文件? 如果他可以通过ssh从centos服务器复制存储库文件,我认为conf / authz文件实现的svn访问控制没有任何意义,svn存储库不安全。

我只是学习如何创建一个svn + ssh subversion服务器,所以也许我的知识还不够,请给我一个想法或者告诉我是否存在解决方案。 如果无法禁止通过SSH从Linux服务器复制文件,我将使用svn或http(s)访问模式。

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。

在authorized_keys文件中添加命令以禁用ssh shell login和scp,但启用svn + ssh,如下所示:

“/ usr / bin / svnserve -t -r / svn / test /”,no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding

添加authorized_keys文件后会这样:

command =“/ usr / bin / svnserve -t -r / svn / test /”,no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa A .. .................................................. ..................

我认为这是一个解决方案,你有其他人吗?请告诉我。