git + ssh: так какие же порты? (TCP_IN = "9418" + TCP_OUT = "9418,22")

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

Ответить
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

git + ssh: так какие же порты?

Сообщение Stauffenberg »

Всем привет.

Git по умолчанию использует 9418 порт, но для аутентификации используется ssh-ключ. Нужно ли на сервере открывать ssh-порт для git-запросов? Или запросы адресуются git'ом ssh уже после того, как их получил и обработал git?

Меня немного смутил вот этот ответ:
TCP_IN = "9418" TCP_OUT = "9418,22"



Т.е. 22 out-порт нужно все же открыть?
Благодарю за ответ.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: git + ssh: так какие же порты?

Сообщение IMB »

По-моему достаточно 22, у меня работает gitolite и nestat не видит порта 9418.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: git + ssh: так какие же порты?

Сообщение drBatty »

Stauffenberg писал(а):
01.10.2014 13:47
Нужно ли на сервере открывать ssh-порт для git-запросов?

вы точно не путаете ssl и ssh аутентификацию? Если git работает через ssh, то используется порт, прописанный в конфиге sshd_conf, по умолчанию 22, но его настоятельно рекомендуется изменить на $RANDOM. Никаких других портов в данном случае git использовать не может и не должен
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: git + ssh: так какие же порты?

Сообщение Stauffenberg »

drBatty писал(а):
01.10.2014 16:43
Stauffenberg писал(а):
01.10.2014 13:47
Нужно ли на сервере открывать ssh-порт для git-запросов?

вы точно не путаете ssl и ssh аутентификацию? Если git работает через ssh, то используется порт, прописанный в конфиге sshd_conf, по умолчанию 22, но его настоятельно рекомендуется изменить на $RANDOM. Никаких других портов в данном случае git использовать не может и не должен

Ок, т.е. если я делаю git clone git@ip:/repo.git, то говорю с git-сервером по протоколу ssh.

Точняк, это же альтернативная запись git clone ssh://git@ip/repo.git. SSH-ключ лежит на сервере в /home/git/.ssh/authorized_keys.

Но мне не совсем понятно как происходит перенаправление от ssh к git. OpenSSH работает в данном случае по типу mail relay, т.е. расшифровывает сообщения и передает их дальше? А если git на сервере выключить, то от ssh я получу ОК (процесс аутентификации), а потом ошибку о том, что git на сервере не найден?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: git + ssh: так какие же порты?

Сообщение Stauffenberg »

IMB писал(а):
01.10.2014 16:08
По-моему достаточно 22, у меня работает gitolite и nestat не видит порта 9418.

Т.е. ssh редиректит запросы дальше - на gitolite?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: git + ssh: так какие же порты?

Сообщение SLEDopit »

Stauffenberg писал(а):
02.10.2014 10:05
А если git на сервере выключить, то от ssh я получу ОК (процесс аутентификации), а потом ошибку о том, что git на сервере не найден?
По дефолту git можно "выключить", если бинарники удалить. Там нет висящего демона, который слушает определённый порт или сокет.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: git + ssh: так какие же порты?

Сообщение Bizdelnick »

http://www.git-scm.com/book/ru/Git-%D0%BD%...%B5%D1%80%D0%B5
А изначально речь шла о другом варианте: http://www.git-scm.com/book/ru/Git-%D0%BD%...%BC%D0%BE%D0%BD
Про gitolite там же рядом есть.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: git + ssh: так какие же порты?

Сообщение Stauffenberg »

SLEDopit писал(а):
02.10.2014 12:14
Stauffenberg писал(а):
02.10.2014 10:05
А если git на сервере выключить, то от ssh я получу ОК (процесс аутентификации), а потом ошибку о том, что git на сервере не найден?
По дефолту git можно "выключить", если бинарники удалить. Там нет висящего демона, который слушает определённый порт или сокет.

Ну вот это меня и интересует. Получается, что git использует порт, который слушает другой демон (sshd). Откуда sshd знает, кому дальше передавать запросы, после того, как он их расшифровал... Каша в голове... мармеладэээ :wacko:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: git + ssh: так какие же порты?

Сообщение Bizdelnick »

Stauffenberg писал(а):
02.10.2014 17:32
Откуда sshd знает, кому дальше передавать запросы, после того, как он их расшифровал...

А откуда он это знает, что ему делать, в случае ssh user@server command? Вот ровно оттуда же.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: git + ssh: так какие же порты?

Сообщение IMB »

Stauffenberg писал(а):
02.10.2014 10:11
IMB писал(а):
01.10.2014 16:08
По-моему достаточно 22, у меня работает gitolite и nestat не видит порта 9418.

Т.е. ssh редиректит запросы дальше - на gitolite?

Нет, Вы авторизуетесь через ssh в системе под отдельным пользователем, этому пользователю доступна оболочка с ограниченным набором команд.
Фактически Вы выполняете команды в системе через ssh, git-сервер вообще не запущен.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: git + ssh: так какие же порты?

Сообщение Stauffenberg »

IMB писал(а):
02.10.2014 17:57
Stauffenberg писал(а):
02.10.2014 10:11
IMB писал(а):
01.10.2014 16:08
По-моему достаточно 22, у меня работает gitolite и nestat не видит порта 9418.

Т.е. ssh редиректит запросы дальше - на gitolite?

Нет, Вы авторизуетесь через ssh в системе под отдельным пользователем, этому пользователю доступна оболочка с ограниченным набором команд.
Фактически Вы выполняете команды в системе через ssh, git-сервер вообще не запущен.

В этом случае мне не понятно, как так получается, что для git-пользователя (на сервере) добавленны ssh-кючи, т.е. пользователи авторизуются как git, но в истории коммитов имена пользователей именно те, которые были указаны git'овскими переменными (клиентская сторона). Просто передаеются переменные окружения?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20794
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: git + ssh: так какие же порты?

Сообщение Bizdelnick »

Stauffenberg писал(а):
07.10.2014 11:12
пользователи авторизуются как git, но в истории коммитов имена пользователей именно те, которые были указаны git'овскими переменными

Ну так Вы пушите коммиты, в которых уже имена авторов прописаны. Они при этом не меняются. Даже если пушнуть коммиты разных авторов - всё останется, как было.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: git + ssh: так какие же порты?

Сообщение drBatty »

Stauffenberg писал(а):
07.10.2014 11:12
т.е. пользователи авторизуются как git, но в истории коммитов имена пользователей именно те, которые были указаны git'овскими переменными

AFAIK в самом git'е и нет никакой авторизации, т.е. вы в свой репозиторий можете запушить коммент кого угодно. Авторизация есть в ssh, и потому пушить можете только вы, и те, у кого есть ключ ssh. Но пушить они могут что угодно, и вообще, делать с git'ом что угодно, что позволено для пользователя, под именем которого они заходят(в ssh или локально).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: git + ssh: так какие же порты?

Сообщение IMB »

Stauffenberg писал(а):
07.10.2014 11:12
В этом случае мне не понятно, как так получается, что для git-пользователя (на сервере) добавленны ssh-кючи, т.е. пользователи авторизуются как git, но в истории коммитов имена пользователей именно те, которые были указаны git'овскими переменными (клиентская сторона). Просто передаеются переменные окружения?

Если говорить о gitolite, то в нём права доступа и ключи пользователей хранятся в его же git-репозитории.
Спасибо сказали:
Ответить