На сайте GitHub есть ссылка ...
https://help.github.com/articles/generating-ssh-keys
... и говорится ...
Если вы решили не использовать рекомендуемый метод HTTPS, мы можем использовать ключи SSH для установления безопасного соединения между вашим компьютером и GitHub. Приведенные ниже шаги помогут вам создать ключ SSH, а затем добавить открытый ключ в вашу учетную запись GitHub.
Почему HTTPS рекомендуемый метод? Есть ли какой-то недостаток безопасности в методе SSH или он медленнее? Я создал ключ SSH, так что это уменьшит проблемы безопасности?
Ответы:
GitHub несколько раз менял свои рекомендации ( пример ).
Похоже, что в настоящее время они рекомендуют HTTPS, потому что его проще всего настроить в самых разных сетях и платформах, а также для пользователей, которые являются новичками во всем этом.
В SSH нет недостатка (если бы они его отключили) - по ссылкам ниже вы увидите, что они по-прежнему предоставляют информацию о SSH-соединениях:
HTTPS менее вероятно будет заблокирован брандмауэром.
https://help.github.com/articles/which-remote-url-should-i-use/
HTTPS-соединение позволяет
credential.helper
кешировать ваш пароль.https://help.github.com/articles/set-up-git
источник
ssh-agent
? Справедливо. Спасибо!Я предполагаю, что HTTPS рекомендуется GitHub по нескольким причинам
1) Проще использовать из любого места, так как вам нужны только данные вашей учетной записи (не требуются ключи SSH)
2) HTTPS - это порт, который открыт во всех брандмауэрах. SSH не всегда открыт как порт для связи с внешними сетями
Поэтому GitHub-репозиторий более универсален, используя HTTPS, чем SSH.
На мой взгляд, SSH-ключи стоят немного дополнительной работы по их созданию.
1) Ключи SSH не предоставляют доступ к вашей учетной записи GitHub, поэтому ваша учетная запись не может быть взломана, если ваш ключ украден,
2) Использование сильной ключевой фразы с вашим ключом SSH ограничивает любое злоупотребление, даже если ваш ключ украден
Если ваши учетные данные GitHub (имя пользователя / пароль) были украдены, ваш пароль GitHub может быть изменен, чтобы заблокировать вам доступ, и все ваши общие репозитории могут быть быстро удалены.
В случае кражи закрытого ключа кто-то может принудительно нажать пустое хранилище и стереть всю историю изменений для каждого принадлежащего вам хранилища, но не может ничего изменить в вашей учетной записи GitHub. Попробовать восстановление после такого нарушения будет намного проще, если у вас есть доступ к вашей учетной записи GitHub.
Я предпочитаю использовать SSH с ключом, защищенным парольной фразой. У меня есть разные ключи SSH для каждого компьютера, поэтому, если эта машина будет украдена или взломана, я могу быстро войти в GitHub и удалить этот ключ для предотвращения нежелательного доступа.
SSH может быть туннелирован через HTTPS, если сеть, в которой вы находитесь, блокирует порт SSH.
https://help.github.com/articles/using-ssh-over-the-https-port/
Если вы используете HTTPS, я бы рекомендовал добавить двухфакторную аутентификацию, чтобы защитить вашу учетную запись, а также ваши репозитории.
Если вы используете HTTPS с инструментом (например, редактором), вы должны использовать токен разработчика из своей учетной записи GitHub, а не кэшировать имя пользователя и пароль в конфигурации этих инструментов.
источник
Либо вы цитируете неправильно, либо у github есть разные рекомендации на разных страницах, либо они могут со временем выучить и обновить свои рекомендации.
Мы настоятельно рекомендуем использовать SSH-соединение при взаимодействии с GitHub. Ключи SSH - это способ идентификации доверенных компьютеров без использования паролей. Приведенные ниже шаги помогут вам создать ключ SSH, а затем добавить открытый ключ в вашу учетную запись GitHub.
https://help.github.com/articles/generating-ssh-keys
источник
Включение соединений SSH через HTTPS, если оно заблокировано брандмауэром
Проверьте, возможен ли SSH через порт HTTPS, выполните команду SSH:
Если это сработало, отлично! Если нет, вам может потребоваться следовать нашему руководству по устранению неполадок .
Если вы можете использовать SSH
git@ssh.github.com
через порт 443 , вы можете переопределить настройки SSH, чтобы заставить любое соединение с GitHub работать через этот сервер и порт.Чтобы установить это в конфигурации ssh, отредактируйте файл в
~/.ssh/config
и добавьте этот раздел:Вы можете проверить, что это работает, подключившись еще раз к GitHub:
От аутентификации до GitHub / Использование SSH через порт HTTPS
источник
Также смотрите: официальный Какой удаленный URL я должен использовать? ответ на help.github.com.
РЕДАКТИРОВАТЬ:
Кажется, что больше нет необходимости иметь доступ для записи в публичном репо, чтобы использовать URL-адрес SSH, что делает мое первоначальное объяснение недействительным.
ОРИГИНАЛ:
Очевидно, что основная причина предпочтения HTTPS-URL-адресов заключается в том, что SSH-URL-адреса не будут работать с публичным репо, если у вас нет прав на запись в этот репо.
Однако использование SSH-URL рекомендуется для развертывания на производственных серверах - предположительно, контекстом здесь являются такие сервисы, как Heroku.
источник
Можно утверждать, что использование ключа SSH для аутентификации менее безопасно, потому что мы склонны менять наш пароль более периодически, чем мы генерируем новые ключи SSH.
Серверы, которые ограничивают срок службы, для которого они будут соблюдать данные ключи SSH, могут помочь пользователям периодически обновлять SSH-ключи.
источник
Может быть, из-за того, что сложнее украсть пароль из вашего мозга, чем украсть ключевой файл с вашего компьютера (по крайней мере, насколько мне известно, возможно, некоторые вещества уже существуют или методы, но это бесконечное обсуждение)? И если вы защищаете ключ паролем, то вы снова используете пароль, и возникают те же проблемы (но некоторые могут утверждать, что вам нужно проделать дополнительную работу, потому что вам нужно получить ключ, а затем взломать пароль).
источник