synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяУстановка, Загрузка и Настройка › Установка и использование Git Server

Установка и использование Git Server

dark_ghost · 17.01.2015

Хочу поделиться своим опытом, чтоб банально кому-то сэкономить время. Аргументированные замечания приветствуются. Не является подробным мануалом, я лишь просто перечисляю последовательность своих действий.

 

Понадобился мне на днях собственный git server дабы совместно с товарищами было удобнее разрабатывать собственный проект. Благо существует соответствующий пакет для любимого DS.

Итак порядок моих действий:

 

1. После установки Git назначил пользователей которым доступен репозиторий

1.PNG

 

2. Установил на свой Win 7 git + TortoiseGit, выставил имя и мыло для коммитов (если ставите git, то я думаю не обязательно объяснять для чего это делается)

2.PNG

 

3. С помощью PuTTYgen генерирую открытый и приватный ключи, сохранил их оба на жёсткий диск своего компьютера. Для приватного как видно из скриншота ниже установил пароль.

3.PNG

 

4. Под учёткой админа (!!!) захожу в веб-интерфейс, захожу в папку homes->dark_ghost (то бишь в папку пользователя). Создаю в этой папке подпапку ".ssh". Правой кнопкой по папке, нажимаем свойства, в поле "Владелец:" выставляем пользователя (в нашем случае это "dark_ghost"). В "Группа:" ставим группу "users". Копирую в эту папку свой публичный ключ, переименовываю его в "authorized_keys", как в примере с папкой выставляем владельцем пользователя.

4.PNG

5.PNG

 

5. Запускаем Putty, подключаемся по ssh к серверу (обязательно под учёткой админа!). Находим конфиг SSH:

cd /etc/ssh/
ls -la

6.PNG

 

Открываем для редактирования "sshd_config":

vi sshd_config

 

Перемещением курсора находим строку:

#PubkeyAuthentication yes

Стираем перед ней "#" в итоге получилось:

PubkeyAuthentication yes

 

Аналогично находим строку (она чуть ниже предыдущей):

#AuthorizedKeysFile .ssh/authorized_keys

И так же превращаем её в:

AuthorizedKeysFile .ssh/authorized_keys

 

Сохраняем изменения в файле введя команду ":x"

 

 

6. Далее любым способом (через консоль или веб-интерфейс) создаём папку с общим доступом (для пользователей репозитория). В SSH под админом заходим в эту папку (она у меня находится псевдо в корне рядом с "homes", называется "repos" значит расположена она "/volume1/repos"):

cd /volume1/repos

Если нужно с помощью команды "mkdir имя_папки" создаём папку и заходим в неё "cd имя_папки". Если нам это не надо, то просто разворачиваем пустой репозиторий (параметр "--bare") прямо в текущей папке:

git --bare init
git update-server-info
cd ..
chown -R :users имя_папки_с_репозиторием

где:

users -- группа-владелец репозиторием. Возможно использовать иную группу в которую включены наши пользователи git

имя_папки_с_репозиторием -- по названию параметра думаю понятно его значение ;)

 

Всё, с сервером закончили разбираться.

 

7. Подключаем наш пустой репозиторий к локальному. В нужной нам папке на компьютере правой кнопкой из меню выбираем "Git Клонировать".

7.PNG

В первой строке объявляем путь к репозиторию на нашем сервере:

ssh://[email protected].х.x:YYY/volume1/repos/

где:

dark_ghost -- имя пользователя

192.168.х.x -- адрес/доменное имя сервера

YYY -- порт SSH

/volume1/repos -- путь на сервере к нашему репозиторию

 

Загружаем наш приватный ключ. Если ранее на него установили пароль, то впоследствии его у нас спросят. Жмякаем "ОК" и если мы всё сделали правильно у нас на компьютере появилась копия репозитория с сервера.

dr_coyote · 17.01.2015

все равно при клонировании требует пароль (приватный ключ без пароля). что не так?

dark_ghost · 17.01.2015
все равно при клонировании требует пароль (приватный ключ без пароля). что не так?

 

Если правильно понял, то требуется пароль, который мы устанавливали для приватного ключа на шаге 3?

Ну я без пароля ключ делать не пробовал (и не собираюсь небезопасно это ведь хранить ключи в открытом виде :rolleyes: ) поэтому единственное, что могу посоветовать сгенерить новые ключи, заменить в authorized_keys на новый публичный и попробовать воспользоваться приватным ключом с паролем.

А если оставить поле пароля пустым, то всё равно не пускает?

 

Кстати, так же в поставку TortoiseGit входит полезная утилита под названием Pageant. Запускаем её, правой кнопкой мыши по значку рядом с часами (панель значков уведомлений если называть "по науке"), в скармливаем в Add key наш приватный ключ и теперь при всех операциях нам не нужно явно указывать путь до него -- черепашка сама будет брать ключ из данного хранилища (пароль всё равно просить будет)

dr_coyote · 17.01.2015
Если правильно понял, то требуется пароль, который мы устанавливали для приватного ключа на шаге 3?

Ну я без пароля ключ делать не пробовал (и не собираюсь небезопасно это ведь хранить ключи в открытом виде :rolleyes: ) поэтому единственное, что могу посоветовать сгенерить новые ключи, заменить в authorized_keys на новый публичный и попробовать воспользоваться приватным ключом с паролем.

А если оставить поле пароля пустым, то всё равно не пускает?

 

Кстати, так же в поставку TortoiseGit входит полезная утилита под названием Pageant. Запускаем её, правой кнопкой мыши по значку рядом с часами (панель значков уведомлений если называть "по науке"), в скармливаем в Add key наш приватный ключ и теперь при всех операциях нам не нужно явно указывать путь до него -- черепашка сама будет брать ключ из данного хранилища (пароль всё равно просить будет)

 

нет, требует пароль пользователя.

minimiks · 19.01.2015

От души спасибо! Как раз недавно узнал про Git - теперь можно с сокурсниками наконец то нормально здоровенный курсач писать. Все понятно и доступно, уважуха!

dark_ghost · 20.01.2015
От души спасибо! Как раз недавно узнал про Git - теперь можно с сокурсниками наконец то нормально здоровенный курсач писать. Все понятно и доступно, уважуха!

 

Наздоровье и удачи с курсачём

romsbel · 25.10.2015

сделал все по инструкции. На последнем шаге выдает следующее:

 

git.exe clone --progress -v "//[email protected]:22/volume1/repos" "D:\Git files\repos"

 

Cloning into 'D:\Git files\repos'...

fatal: '//[email protected]/volume1/repos' does not appear to be a git repository

fatal: Could not read from remote repository.

 

Please make sure you have the correct access rights

and the repository exists.

 

 

git завершил выполнение некорректно (код завершения 128) (609 ms @ 25.10.2015 23:07:23)

 

Делал все по инструкции. В чем может быть проблема? Права на сервере проверил, все ок.

dr_coyote · 26.10.2015
сделал все по инструкции. На последнем шаге выдает следующее:

 

git.exe clone --progress -v "//[email protected]:22/volume1/repos" "D:\Git files\repos"

 

Cloning into 'D:\Git files\repos'...

fatal: '//[email protected]/volume1/repos' does not appear to be a git repository

fatal: Could not read from remote repository.

 

Please make sure you have the correct access rights

and the repository exists.

 

 

git завершил выполнение некорректно (код завершения 128) (609 ms @ 25.10.2015 23:07:23)

 

Делал все по инструкции. В чем может быть проблема? Права на сервере проверил, все ок.

 

//[email protected]:22/volume1/repos"

исправить на

ssh://[email protected]:22/volume1/repos"

 

romsbel · 26.10.2015
//[email protected]:22/volume1/repos"

исправить на

ssh://[email protected]:22/volume1/repos"

 

Заработало!! Спасибо!