Почему GitHub рекомендует HTTPS через SSH?

на сайте GitHub есть ссылка...

https://help.github.com/articles/generating-ssh-keys

... и в нем говорится...

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

Почему HTTPS является рекомендуемым методом? Есть ли какой-то недостаток безопасности в методе SSH или он медленнее? Я создал ключ SSH, так что это смягчит любые проблемы безопасности?

7 ответов


GitHub несколько раз меняли свои рекомендации (пример).

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

В SSH нет врожденного недостатка (если он был отключен) -- в приведенных ниже ссылках вы увидите, что они все еще предоставляют подробную информацию о SSH-соединениях:

  1. протокол HTTPS меньше шансов быть заблокированным брандмауэром.

    https://help.github.com/articles/which-remote-url-should-i-use/

    URL-адреса https:// clone доступны во всех репозиториях, общедоступных и частных. Эти URL-адреса работают везде, даже если вы находитесь за брандмауэром или прокси.

  2. соединение HTTPS позволяет credential.helper кэш ваш пароль:.

    https://help.github.com/articles/set-up-git

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


HTTPS рекомендуется Github, потому что его порт открыт во всех брандмауэрах. SSH не всегда открыт как порт для связи в сети и часто блокируется сетевыми брандмауэрами.

репозиторий Github поэтому более универсален с использованием HTTPS, чем SSH.

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

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

https://help.github.com/articles/using-ssh-over-the-https-port/

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


либо вы цитируете неправильно, либо github имеет разные рекомендации на разных страницах, либо они могут узнать со временем и обновить их reco.

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

https://help.github.com/articles/generating-ssh-keys


см. Также: официальный какой удаленный URL я должен использовать? ответ на help.github.com.

EDIT:

кажется, что больше нет необходимости иметь доступ на запись к публичному РЕПО для использования URL-адреса SSH, что делает мое первоначальное объяснение недействительным.

оригинал:

по-видимому, основной причиной предпочтения https url является то, что SSH URL не будет работать с публичным РЕПО, если у вас нет доступа на запись это РЕПО.

использование URL-адресов SSH рекомендуется для развертывания на производственных серверах, однако-предположительно, контекст здесь-такие службы, как Heroku.


включение SSH-соединений через HTTPS, если он заблокирован брандмауэром

Проверьте, возможен ли SSH через порт HTTPS, выполните эту команду SSH:

$ ssh -T -p 443 git@ssh.github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

если это работает, здорово! Если нет, вам может потребоваться следовать нашим руководство по устранению неисправностей.

если вы можете SSH в git@ssh.github.com порт 443, вы можете переопределить настройки SSH, чтобы заставить любое соединение с GitHub работать через этот сервер и порт.

в установите это в конфигурации ssh, отредактируйте файл в ~/.ssh/config, и добавьте этот раздел:

Host github.com
  Hostname ssh.github.com
  Port 443

вы можете проверить, что это работает, подключившись еще раз к GitHub:

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

С аутентификация на GitHub / использование SSH через порт HTTPS


можно утверждать, что использование ключа SSHs для аутентификации менее безопасно, потому что мы склонны менять пароль более периодически, чем мы генерируем новые ключи SSH.

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


может быть, потому, что сложнее украсть пароль из вашего мозга, а затем украсть ключевой файл с Вашего компьютера (по крайней мере, насколько мне известно, возможно, некоторые вещества уже существуют или методы, но это бесконечное обсуждение)? И если вы защищаете паролем ключ, то вы снова используете пароль и возникают те же проблемы (но некоторые могут утверждать, что вам нужно сделать больше работы, потому что вам нужно получить ключ, а затем взломать пароль).