Я создаю пользователя john
на моем сервере, и я добавляю его в группу SVN, чтобы мы могли поделиться своим кодом, и все выглядит нормально. Теперь я хочу запретить этому пользователю подключаться к консоли или оболочке через SSH. В /etc/ssh/sshd_confing
файл я добавляю эти строки:
Match User john
ForceCommand svnserve -t
Я хотел бы спросить, достаточно ли безопасна моя конфигурация? Команды SVN через SSH работают нормально. Когда он пытается подключиться, он получает:
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
войти на мой сервер каким-то образом взломанным способом?You do not have permission to login!
?Это правильный способ сделать это. У меня есть только два совета, как вы можете дополнительно повысить безопасность своего SVN-сервера.
Во-первых, вы можете разрешить только аутентификацию с открытым ключом SSH. Если это так, вы можете заблокировать пароль пользователя с помощью
passwd -l USERNAME
Во-вторых, вы можете создать простой скрипт-оболочку (порожденная оболочка заменяется на 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