我在我的服务器上创build了一个用户john ,并将他添加到SVN组中,以便我们可以共享我们的代码,一切都看起来不错。 现在我想阻止这个用户通过SSH连接到控制台或shell。 在/etc/ssh/sshd_confing文件中添加以下/etc/ssh/sshd_confing行:
Match User john ForceCommand svnserve -t
我想问问我的configuration是否足够安全? 通过SSH的SVN命令正常工作。 当他尝试连接时,他会得到:
blueprint:~ john$ ssh john@91.***.***.96 -p **5 john@91.***.***.96's password: ( success ( 2 2 ( ) ( edit-pipeline svndiff1 absent-entries commit-revprops depth log-revprops partial-replay ) ) ) ^CConnection to 91.***.***.96 closed. blueprint:~ john$
我有两个问题:
john以某种方式login我的服务器? You do not have permission to login! ? 这是一个正确的方法如何做到这一点。 我只有两点你可以额外提高你的SVN服务器的安全性。
首先,您只能允许SSH公钥authentication。 如果是这样,那么你可以locking用户的密码
passwd -l USERNAME
其次,你可以创build一个简单的包装脚本(生成的shell被replace为svnserve命令),并使用ForceCommand选项包含警告消息
cat > /usr/local/bin/svn_cmd_wrapper.sh <<EOF #!/bin/sh -f echo "You do not have permission to login!" echo exec svnserve -t EOF
然后,使其可执行
chmod u+x /usr/local/bin/svn_cmd_wrapper.sh
并在sshd_config文件中使用它:
ForceCommand /usr/local/bin/svn_cmd_wrapper.sh