Назад | Перейти на главную страницу

Запретить доступ пользователей к консоли, но все же разрешить svn + ssh: // доступ к репозиториям SVN

Я создаю пользователя 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$

У меня два вопроса:

Это правильный способ сделать это. У меня есть только два совета, как вы можете дополнительно повысить безопасность своего 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