как подружить Git и Debian

Автор Екатерина, 23 мая 2017, 15:51:05

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Екатерина

Добрый день!
хочу подружить локальный Git и Debian.

через браузер на гит захожу с ошибкой сертификата. через git clone на https ссылку пишет ошибку сертификата, на ssh просит пароль от пользователя, но на мой пароль не реагирует.

Наверное я куда-то не туда иду. Подскажите пожалуйста направление.
Для решения проблемы с сертификатом, я через F12 скачивала сертификат с сайта гита, экспортировала его на локальный ПК как "единый сертификат в ASCII с кодировкой base64". Он сохранялся с расширением .loc. Я ему ручками меняла расширение (может его надо конвертировать?) на .crt, копировала в папку /usr/share/ca-certificates/extra и делала dpkg-reconfigure ca-certificates и добавляла этот сертификат. Он никак не реагирует на мои действия, сертификату не доверяет, клонировать не дает.

Для git-clone по ssh, я себе выпустила ssh ключ ssh-keygen -t rsa -C "your.email@example.com" -b 4096, скопировала его в гит в браузере и пыталась выполнить
git clone ssh://username@gitlab.tc-secur.local:NAMEPROJECT.git


где username - логин под которым захожу в гит через веббраузер, а NAMEPROJECT - имя проекта.
он заправшивает пароль, но на него говорит, что он не верный. Собственно пароль меняла через веббраузер.
в какую сторону мне идти?

Komorebi

Впервые слышу про какие-то loc сертификаты, тем более при работе с гитом. Обычно процедура выглядит так:
- Выполняем ssh-keygen (указываем сохранение в .ssh/id_rsa
- Отдаем id_rsa.pub серверу, как правило для этого у него будет своя веб-морда
- Запускаем ssh агент (eval "$(ssh-agent)")
- Добавляем ключ в агент (ssh-add ~/.ssh/id_rsa)
- Проверяем: ssh username@server. Должно работать.

Екатерина

Цитата: Komorebi от 23 мая 2017, 23:22:05
Впервые слышу про какие-то loc сертификаты, тем более при работе с гитом. Обычно процедура выглядит так:
- Выполняем ssh-keygen (указываем сохранение в .ssh/id_rsa
- Отдаем id_rsa.pub серверу, как правило для этого у него будет своя веб-морда
- Запускаем ssh агент (eval "$(ssh-agent)")
- Добавляем ключ в агент (ssh-add ~/.ssh/id_rsa)
- Проверяем: ssh username@server. Должно работать.


все это перевыполнила и проверила. публичный ключ выпущен и установлен, агент запущен и добавлен ключ.
Дальше выполняю ssh kate@gitlab.domain.local
Он мне просит пароль - я ему ввожу пароль от учетки git'а и он мне возвращается - permission denied =(

может от рута попробовать?


а насчет сертикиата с расширением .loc - т.к. сервер локальный и сертификат моему дебиану неизвестный. Поэтому в браузере он пишет, что сертификата не знает и подключение опасно, но если нажать - все равно открыть сайт, то сайт он открывает. поэтому я подумала, что ошибка клонирования по https связана с этим. Так что я в браузере нажала F12 вытащила оттуда корневой сертификат и попробовала его добавить в корневые доверенные в самой системе, что у меня не вышло(

endru

#3
Цитата: Екатерина от 24 мая 2017, 09:36:41ssh kate@gitlab.domain.local
Он мне просит пароль - я ему ввожу пароль от учетки git'а и он мне возвращается - permission denied =(

может от рута попробовать?
пароль пользователя kate на том серваке нужен! уж явно не рута и не других пользователей.

весь алгоритм до ужаса прост.
подключаемся от user1@server1.ru к user2@server2.ru
1) заходим под пользователем user1 на server1.ru.
2) генерируем ключ: ssh-keygen -t rsa
3) копирем ключ на другой сервер:
ssh-copy-id user2@server2.ru
в процессе копирования будет запрошен пароль от пользователя user2 на сервере server2.ru
4) проверяем что user1@server1.ru входит без пароля под учеткой user2@server2.ru
ssh user2@server2.ru

Екатерина

Цитата: endru от 24 мая 2017, 11:20:50пароль пользователя kate на том серваке нужен! уж явно не рута и не других пользователей.
в смысле попробовать от рута выполнить эти действия все.

alsoijw

Екатерина, у тебя два компа. За одним ты сидишь и вбиваешь эту команду. К другому хочешь подключится. Как несложно догадаться рут на первом ничего не значит на втором и наоборот. Зато для второго пк имеет значение пароль kate. Какой у этой учётки пароль должна знать.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Екатерина

#6
Погодите)
вот у меня есть рабочая машина с дебианом Jessie, а есть серверная (тоже на дебиане кстати, правда 3.16), на которой поднят Gitlab.
На сколько я знаю (или я чего-то не понимаю?) пользователи в самой системе и непосредственно на поднятом гите, это разные вещи.

Собственно учетная запись Kate есть на гите, я ее вижу, могу зайти в веб морду, скачать оттуда проект и менять ее по своему усмотрению. В самой системе, на которой поднят гитлаб ее нет (и вроде как не должно быть). По крайней мере поиск по файлу /etc/passwd ничего не дал.

Я-то хочу работать с репозиторием на гите, туда какой-нибудь комментарий добавить или залить чего-нибудь.
вот.

кстати под рутом от server2(локальной записью на сервере, где поднят сервер гита) я смогла выполнить команду ssh-copy-id user2@server2.ru


Cообщение объединено 24 мая 2017, 13:47:28

а вообще жеж по https можно клонировать. Но он мне упорно говорит:
fatal: unable to access 'https://gitlab.domain/Project.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

Да и в браузере он не доверяет этому сертификату.
я хотела вытащить его через браузер, но у меня, как я писала ранее, ничего не вышло из этого.


ZEN

#7
Если посмотреть на команду 'git clone git@gitlab.domain:groupname/Project.git', то будет видно что git подключается к репозиторию с пользователем git. То есть, учетная запись Kate для этого не используется. Используется сертификат для аутентификации, который каждый пользователь через веб-интерфейс добавляет самостоятельно (в gitlab.domain/profile/keys ). И пароль в этом случае используется не от учетной записи, а тот который использовался при создании сертификата. Процедура по клонированию репозитория, после добавления ssh ключа, должна выглядеть вот так:


$ ssh-add ~/.ssh/your_private.key
Enter passphrase for /home/Kate/.ssh/your_private.key:
$ git clone git@gitlab.domain:groupname/Project_A.git
$ git clone git@gitlab.domain:groupname/Project_B.git
$ git clone git@gitlab.domain:groupname/Project_C.git
$ git clone git@gitlab.domain:groupname/Project_D.git


На счет https, firefox экспортирует в crt. А затем можно добавить сертификат как-то так:

$ sudo -s
# mkdir /usr/share/ca-certificates/gitlab.domain
# cp gitlab_domain.crt /usr/share/ca-certificates/gitlab.domain/gitlab_domain.crt
# update-ca-certificates
...


После перезапуска браузер должен перестать жаловаться на https и git заработать.
Crimea is Ukraine

Екатерина

Цитата: ZEN от 24 мая 2017, 22:06:09
Если посмотреть на команду 'git clone git@gitlab.domain:groupname/Project.git', то будет видно что git подключается к репозиторию с пользователем git. То есть, учетная запись Kate для этого не используется. Используется сертификат для аутентификации, который каждый пользователь через веб-интерфейс добавляет самостоятельно (в gitlab.domain/profile/keys ). И пароль в этом случае используется не от учетной записи, а тот который использовался при создании сертификата. Процедура по клонированию репозитория, после добавления ssh ключа, должна выглядеть вот так:


$ ssh-add ~/.ssh/your_private.key
Enter passphrase for /home/Kate/.ssh/your_private.key:
$ git clone git@gitlab.domain:groupname/Project_A.git
$ git clone git@gitlab.domain:groupname/Project_B.git
$ git clone git@gitlab.domain:groupname/Project_C.git
$ git clone git@gitlab.domain:groupname/Project_D.git




=( я что-то делаю не так.

я на всякий случай перевыпустила себе сертификат ssh-keygen -t rsa -C "your.email@example.com" -b 4096
в этот раз с паролем (в прошлый раз я просто нажала ентер).
cat ~/.ssh/id_rsa.pub
просмотрела публичный ключ и его еще раз вместе со всеми ssh-rsa скопировала в веб морду на вкладку SSH key

потом выполнила ssh-add ~/.ssh/id_rsa (т.к. оставляла его имя по умолчанию)
и попробовала  git clone git@gitlab.domain:groupname/Project_A.git

он потребовал пароль - ввела пароль от моего закрытого ключа, который поставила в самом первом пункте и снова permission denied =(
я что-то определенно не так делаю только не понимаю в какую сторону идти

ZEN

#9
А покажи вывод команды:
sudo gitlab-rake gitlab:check
Может быть проблема в настройках gitlab

Cообщение объединено 25 мая 2017, 19:45:22

UPD, может быть еще вот такая проблемка: https://gitlab.com/gitlab-org/gitlab-ce/issues/26022#note_20476985
там же в качестве решения предлагают выполнить следующую команду на сервере с GitLab:
sudo passwd -d git
Crimea is Ukraine

Komorebi

Нужна дебаг инфа. Добавьте флаг -vvv

Екатерина

 Я прошу прощения, за задержку. я болела и не было доступа.
Вообще я поторопилась. и когда еще раз выполнила
ssh-keygen -t rsa -C "your.email@example.com" -b 4096
cat ~/.ssh/id_rsa.pub
ssh-add ~/.ssh/id_rsa
git clone git@gitlab.domain:groupname/Project_A.git

все заработало) по крайней мере он склонировался на компутер.


sudo gitlab-rake gitlab:check - это делать на самом сервере гитлаба или моего ПК, с которого подключаюсь? потому что с моего компьютера он пишет, что команда не найдена.

А вот с сертификатом хуже. Во-первых, через браузер он экспортирует без расширения. Я попробовала на хроме и мозиле. Если это делать из windows, то он экспортируется с расширением .cer. А такое расширение он вообще не видит.
Видимо надо как-то конвертировать из .cer в .crt.
да? 

endru

Цитата: Екатерина от 02 июня 2017, 10:22:10Видимо надо как-то конвертировать из .cer в .crt.
просто поменять расширение файла.

ZEN

Цитата: Екатерина от 02 июня 2017, 10:22:10
sudo gitlab-rake gitlab:check - это делать на самом сервере гитлаба или моего ПК, с которого подключаюсь? потому что с моего компьютера он пишет, что команда не найдена.
На сервере с GitLab. Но уже нет смысла это делать, так как проект склонировался.

Цитата: Екатерина от 02 июня 2017, 10:22:10
А вот с сертификатом хуже. Во-первых, через браузер он экспортирует без расширения. Я попробовала на хроме и мозиле. Если это делать из windows, то он экспортируется с расширением .cer. А такое расширение он вообще не видит.
Видимо надо как-то конвертировать из .cer в .crt.
да? 
По-идее, как предложил endru, нужно просто переименновать файл добавил .crt в конце.
Crimea is Ukraine

Екатерина

root@KaterinaDeb:/home/katerina/Документы# mv gitlab.vka.loc gitlab.vka.loc.crt
root@KaterinaDeb:/home/katerina/Документы# ls -la
итого 102392
drwxrwxrwx 11 katerina katerina     4096 июн  9 16:48 .
drwxrwxrwx 52 katerina katerina     4096 июн  9 16:43 ..
drwxrwxrwx  8 katerina katerina     4096 апр 24 16:01 123
drwxrwxrwx  2 katerina katerina     4096 май 17 15:49 books
-rw-r--r--  1 katerina katerina     1278 июн  9 16:48 gitlab.vka.loc.crt
drwxrwxrwx 22 root     root         4096 мар 15 15:46 hplip-3.16.11
-rwxrwxrwx  1 katerina katerina 23105644 мар 13 13:48 hplip-3.16.11.run
-rwxrwxrwx  1 katerina katerina       92 мар 16 13:15 .~lock.can.docx#
-rwxrwxrwx  1 katerina katerina    26603 мар 15 09:40 mplsl.287ac5b1.graphmlz
-rwxrwxrwx  1 katerina katerina     1136 апр 27 10:53 rootCA.crt
-rwxrwxrwx  1 katerina katerina    16944 мар 15 09:38 umlin.01a7a725.graphmlz
-rwxrwxrwx  1 katerina katerina 81489708 мар 15 09:26 yEd-3.16.2.1_64-bit_setup.sh
drwxrwxrwx  2 katerina katerina     4096 апр 20 16:15 внутреннее
drwxrwxrwx  3 katerina katerina     4096 июн  9 15:58 ВЦКП
drwxrwxrwx  2 katerina katerina     4096 апр 14 09:54 ГИРЦ
-rwxrwxrwx  1 katerina katerina     6310 мар 10 17:48 Запрос_реквизитов.xlsx
drwxrwxrwx  2 katerina katerina     4096 май 30 11:56 КП
-rwxrwxrwx  1 katerina katerina    16235 апр 10 16:24 расчет за коммандировку.ods
-rwxrwxrwx  1 katerina katerina    10453 мар 28 14:51 расчет цен.ods
drwxrwxrwx  3 katerina katerina     4096 апр 10 14:16 СМУРФ
-rwxrwxrwx  1 katerina katerina    87040 мар 30 14:30 Соглашение для непрямых партнеров.doc
drwxrwxrwx  3 katerina katerina     4096 май 16 16:44 ТЗ
root@KaterinaDeb:/home/katerina/Документы# cp gitlab.vka.loc.crt /usr/share/ca-certificates/
extra/       mozilla/     spi-inc.org/
root@KaterinaDeb:/home/katerina/Документы# cp gitlab.vka.loc.crt /usr/share/ca-certificates/extra/
root@KaterinaDeb:/home/katerina/Документы# cd /usr/share/ca-certificates/extra/
root@KaterinaDeb:/usr/share/ca-certificates/extra# ls -la
итого 16
drwxr-xr-x 2 root root 4096 июн  9 16:52 .
drwxr-xr-x 5 root root 4096 май 23 15:24 ..
-rwxrwxrwx 1 root root 1278 июн  1 12:29 cert.cer
-rw-r--r-- 1 root root 1278 июн  9 16:52 gitlab.vka.loc.crt
root@KaterinaDeb:/usr/share/ca-certificates/extra# update-ca-certificates
Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
done.
done.


Не помогает! я его экспортировала, переименовала с расширением .crt добавила в папку с сертификатами. А он все-равно не стал применяться. и в браузере он отображается с ошибкой. Вот в мозиле я его в исключения  добавила и мозила отображает без ошибок, а вот хром ругается. и git clone по https тоже ругается( жить в принципе не мешает, но неприятно