Які плюси і мінуси SSH і HTTP для сервера git?


24

Я хочу налаштувати сервер git. Я знайшов декілька практичних, добре деталізованих.

Деякі описують встановлення для git-сервера, доступного через Ssh, а інші, доступного через HTTP. (Інші навіть радять такі засоби, як гітоліт).

Чи є плюси чи мінуси, які обирають SSH чи HTTP? Здається, що за допомогою HTTP передача файлів значно повільніше, але мені цікаво, чи варто пам’ятати про інші речі.

Який найпоширеніший спосіб налаштування git-сервера, якщо такий є?

Відповіді:


23

Хоча ви запитуєте, який найпоширеніший спосіб, я думаю, що краще переглянути вашу ситуацію і пам’ятати, що один протокол не виключає іншого - додайте більше протоколу доступу пізніше, якщо вони вам знадобляться.

  • Найбільш ефективним і швидким є використання рідної Git демон. Однак пропонуються невеликі функції: ні шифрування, ні автентифікації. Ідеально підходить для публічних дзеркал лише для читання ваших сховищ. Якщо вам потрібна продуктивність, також розгляньте можливість встановлення останньої версії, а не версії, що постачається з вашою ОС.

  • Найбільш сумісним способом є HTTP. Менш ефективний, ніж рідний Git, але теж не така велика різниця. Найважливішим профі HTTP є проникнення брандмауера та підтримка проксі. Він відображається як звичайний інший трафік HTTP для більшості шлюзів / брандмауерів.

  • Більш безпечним є HTTPS, але неминуче менш ефективним. Потрібна досить певна конфігурація. Вам також знадобиться довірений сертифікат TLS.

  • Аналогічна безпека, але більш поширений спосіб - використання SSH. Це за замовчуванням, якщо в командному рядку не вказано жодного протоколу. Працює на SSH, вона забезпечує сильне шифрування, а також пароль і ключ автентифікації. Хоча це нетрадиційно, можна дозволити анонімний доступ і цим способом.

Моя порада залежатиме від випадку використання ваших сховищ:

  • приватні сховища та невелика група користувачів: SSH

  • загальнодоступні сховища, будь-яка кількість клонів, але невелика група привілейованих користувачів: HTTP та Git (лише для завантаження) + SSH (+ push-доступ)

  • будь-якого з перерахованого вище, але з великою кількістю привілейованих користувачів: ви, мабуть, не розумієте філософії Git.

Деякі загальнодоступні або корпоративні мережі можуть блокувати трафік Git та SSH. Якщо вам дійсно потрібно отримати доступ до ваших сховищ з будь-якого місця , подумайте про використання HTTPS і SSH.


Ви можете отримати безкоштовні сертифікати TLS для HTTPS від startssl.com. Довіряють всі основні ОС / браузери.
WhyNotHugo


2

Ви можете використовувати HTTPS для доступу лише для читання, якщо ваші сховища є загальнодоступними, оскільки їх легко використовувати на стороні клієнта. Якщо ні, то слід використовувати лише SSH. У будь-якому випадку слід використовувати SSH для доступу до запису, оскільки він має кращий керування аутентифікацією.


о, так можна змішати два? SSH для запису та доступу для читання, а Https для простого доступу лише для читання?
Стефан Ролланд

Так. Це не повинно бути великою проблемою.
Крістофер Перрін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.