Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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