Программирование
On-line приложения
Почитать
Web-сервер Apache
Печать и форматирование
MySQL
Разные рецепты
Сборка/установка
Редактор vi
Справки
Философия
Мой опыт
Скачать
Программы на Tcl/Tk (GUI)
Программы на Python/Tk (GUI)
Программы (CLI)
Help
Хобби
Фракталы
on-line
Язык для рисования фракталов
Гиперкуб
Теория относительности
Ампуллярии
Преподавание
Студенту/абитуриенту
Мой опыт
Автора!

Subversion: 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, где эта тема освещена только вскользь).

© 1999 − 2010 Мичурин Алексей — http://www.michurin.com.ru/