Каковы плюсы и минусы SSH и HTTP для git-сервера?

24

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

Некоторые описывают установку git-сервера, доступного через Ssh, а другие - через HTTP. (Другие даже советуют такие инструменты, как гитолит).

Есть ли плюсы или минусы, выбирающие SSH или HTTP? Кажется, что по HTTP передача файлов значительно медленнее, но мне интересно, есть ли другие вещи, которые нужно иметь в виду.

Каков наиболее распространенный способ настройки git-сервера, если таковой имеется?

Стефан Роллан
источник

Ответы:

23

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

  • Наиболее эффективным и быстрым является использование нативного демона Git. Тем не менее, мало функций предлагается: без шифрования, без аутентификации. Идеально подходит для общедоступных зеркал ваших репозиториев. Если вам нужна производительность, также рассмотрите возможность установки последней версии, а не версии, поставляемой с вашей ОС.

  • Наиболее совместимым способом является HTTP. Менее эффективен, чем родной Git, но не так уж много различий. Самым важным преимуществом HTTP является проникновение брандмауэра и поддержка прокси. Он выглядит как обычный другой трафик HTTP для большинства шлюзов / брандмауэров.

  • Более безопасным является протокол HTTPS, но он также неизбежно менее эффективен. Требуется довольно некоторая конфигурация. Вам также понадобится доверенный сертификат TLS.

  • Подобная безопасность, но более распространенный способ - использовать SSH. Это значение по умолчанию, если в командной строке не указан протокол. Работает на SSH, обеспечивает надежное шифрование и аутентификацию по паролю и ключу. Хотя нетрадиционный, можно разрешить анонимный доступ таким же образом.

Мой совет будет зависеть от варианта использования ваших репозиториев:

  • частные репозитории и небольшая группа пользователей: SSH

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

  • любой из вышеперечисленных, но с большим количеством пользователей с привилегиями push: вы, вероятно, не понимаете философию Git.

Некоторые публичные или корпоративные сети могут блокировать трафик Git и SSH. Если вам действительно нужен доступ к вашим репозиториям из любого места , рассмотрите возможность использования как HTTPS, так и SSH.

gertvdijk
источник
Вы можете получить бесплатные сертификаты TLS для HTTPS на веб-сайте launchsl.com. Доверие всем основным ОС / браузерам.
WhyNotHugo
2
Или letsencrypt.org
Тереза ​​Томцова
2

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

Кристофер Перрен
источник
о, так что можно смешать два? SSH для доступа на запись и чтение и Https для легкого доступа только для чтения?
Стефан Роллан
Да, это. Это не должно быть большой проблемой.
Кристофер Перрен