Организация работы с репозитарием SVN

Материал из Wiki.Hosting.UA
Перейти к: навигация, поиск

Subversion (также известная как «SVN») — свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet Inc. Subversion

Содержание

Цель

Организовать работу группы людей в SVN с доступом к хранилищу через протокол svn+ssh://
Пользовательские ОС семейства Windows, доступ к хранилищу будет осуществляться с помощью программы TortoiseSVN

Требования

В панели управления должен быть активирован доступ к серверу по протоколу SSH. Такая возможность есть в тарифных планах начиная с плана "Стандарт".

Подготовка

-bash-3.2$ mkdir ~/.ssh/
-bash-3.2$ chmod 0700 ~/.ssh/
-bash-3.2$ touch ~/.ssh/authorized_keys
-bash-3.2$ chmod 0600 ~/.ssh/authorized_keys

Создадим директорию в которой будет находится хранилище.

-bash-3.2$ mkdir ~/.repo
-bash-3.2$ cd ~/.repo
-bash-3.2$ svnadmin create ./test
-bash-3.2$ pwd
/hsphere/local/home/testvh22/.repo

Настройка авторизации

Генерируем ключи для наших пользователей

-bash-3.2$ ssh-keygen -t rsa -b 1024 -f user2.key -C user2
-bash-3.2$ ssh-keygen -t rsa -b 1024 -f user1.key -C user1

Для большей безопасности можно увеличить количество бит в генерируемом ключе "-b 4096"


В результате выполнения каждой из команд получаем два файла вида
user*.key - приватный ключ который мы будем использовать при настройке TortoiseSVN
user*.key.pub - публичный ключ

Копируем публичные ключи в файл authorized_keys

-bash-3.2$
-bash-3.2$ cat user1.key.pub  >> ~/.ssh/authorized_keys
-bash-3.2$ cat user2.key.pub  >> ~/.ssh/authorized_keys

Вывод получившегося файла authorized_keys

bash-3.2$ cat ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAqw8PCtv/nttPljdIvlHi1KWyj5lKt4u0bCnln/qEXqbE uR2blQzd9g0R5pyrE8cbMrEAeMsWXonO1KFe1Pq9NUq6IItCo2ZY/iXXghfrpr8EUwYj0xrAhmSnJmiJ mNVEQLj2YB5gukgpN9Dwmcs01rrRh6HJjHCi9lIsBPVCd6M= user1
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAziRpaqTuFmgCQUeTqDZRQfRGKTvJs3yNuVaOUezFfsuN rh+QubdYlmHWpfbu1tZSPi0tDmoZUvP5yUIARbc+XoQr+ml9nIsM6lFMXtKX0XoR3VwvxVndBiG6D/+R WWvzR7CIWHNB9vOAnwZBIosGdicGRnC7XLwPdFvY2lkQaos= user2


Теперь отредактируем файл authorized_keys, ограничим доступ пользователям к серверу, запретим выполнение форварднига.

bash-3.2$ cat ~/.ssh/authorized_keys
command="/usr/bin/svnserve -t -r /hsphere/local/home/testvh22/.repo --tunnel-user=user1",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAqw8PCtv/nttPljdIvlHi1KWyj5lKt4u0bCnln/qEXqbEuR2blQzd9g0R5pyrE8cbMrEAeMsWXonO1KFe1Pq9NUq6IItCo2ZY/iXXghfrpr8EUwYj0xrAhmSnJmiJmNVEQLj2YB5gukgpN9Dwmcs01rrRh6HJjHCi9lIsBPVCd6M= user1
command="/usr/bin/svnserve -t -r /hsphere/local/home/testvh22/.repo --tunnel-user=user2",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAziRpaqTuFmgCQUeTqDZRQfRGKTvJs3yNuVaOUezFfsuNrh+QubdYlmHWpfbu1tZSPi0tDmoZUvP5yUIARbc+XoQr+ml9nIsM6lFMXtKX0XoR3VwvxVndBiG6D/+RWWvzR7CIWHNB9vOAnwZBIosGdicGRnC7XLwPdFvY2lkQaos= user2

Настройка TortoiseSVN

Конвертирование ключа OpenSSH в формат PPK

Конвертирование ключа





Для конвертирования ключа нам необходима утилита PuTTYgen
Запускаем программу - File - Load private key - Выбираем файл с приватным ключом (user1.key или user2.key)
Сохраняем приватный ключ - File - Save private key


Также конвертирование можно выполнить из командной строки на сервере

-bash-3.2$ puttygen ~/.repo/user1.key -C user1 -O private -o ~/.repo/user1.key.ppk
-bash-3.2$ puttygen ~/.repo/user2.key -C user2 -O private -o ~/.repo/user2.key.ppk


Причина из-за которой автор PuTTY использует свой формат ключей, описана здесь Именно клиент PuTTY будет использоваться в дальнейшем для подключения к хранилищу.

Настройка PuTTY для подключения к хранилищу

Последнюю версию клиента можно взять по ссылке PuTTY

  1. В категории SSH - Auth

Private key file for authentication - указываем полный путь к приватному файлу ключей в формате PPK (рис. 1)

  1. В категории Session необходимо указать

Host Name (or IP address) - указываем название сервера к которому будем подключать
Saved Sessions - указываем имя сессии, в дальнейшем будет использоваться при подключению к хранилищу (рис. 2)

Нажать кнопку Save

Подключение к хранилищу

Запускаем проводник и вводим в строке пути адрес
svn+ssh://testvh22@team_repo
где
testvh22 - имя пользователя с которым подключаетесь к ФТП. Независимо от того, подключаетесь Вы с ключом пользователя user1 или user2 указывается пользователь ФТП Вашего аккаунта
team_repo - название подключения, которое мы настроили в PuTTY

Ссылки

  1. Apache Subversion
  2. Управление версиями в Subversion
  3. Subversion — Википедия
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
ССЫЛКИ НА РАЗДЕЛЫ
Инструменты