Subversion: svn+ssh : Доступ к SVN по ssh-туннелю


Существует множество развитых средств работы с Subversion. Но иногда необходимо поднять хранилище так чтобы: это не заняло много времени, не требовало бы сложного администрирования, хранилище было бы доступно удалённо и доступ это был бы надёжно защищён. Это совсем не сложно.

Настройка
Создаём пользователя, под которым будет работать SVN. Пусть его имя svn, а домашняя директория /home/svn.

От имени этого пользователя создаём депозитарий:

su svn
cd
mkdir svn
svnadmin create /home/svn/svn/project

Настраиваем ssh-доступ необходимых пользователей по ключу. Причём в файл authorized_keys прописываем команду, которая будет выполнять пользователем.

Записи для пользователей в authorized_keys будут выглядеть примерно так:

command="/usr/local/bin/svnserve -t -r /home/svn/svn" ssh-dss AAAAB3Nza…

Готово. Теперь можно использовать SVN:

svn list svn+ssh://svn@localhost/project
svn import tree_root svn+ssh://svn@localhost/project -m 'Init'
svn co svn+ssh://svn@localhost/project/trunk project

Безопасность
Параметр command="…" не единственный полезный параметр доступный в authorized_keys.

Внимания заслуживают:
• no-port-forwarding
• no-agent-forwarding
• no-X11-forwarding
• no-pty
• from="список шаблонов"
• environment="имя=значение"

Смысл их, наверно, понятен и без перевода. Подробно про них можно прочитать в man 8 sshd (именно sshd, а не ssh, где эта тема освещена только вскользь).


Комментарии запрещены.




Статистика