Что следует использовать для Git: HTTPS или SSH? – CloudSavvy ИТ
При подключении к удаленным репозиториям Git, таким как Github, у вас обычно есть два варианта подключения – HTTPS или SSH. Оба имеют свое применение, и хотя SSH обычно считается более безопасным, вопрос немного сложнее.
Какая разница?
Метод аутентификации, который вы используете для подключения к репозиторию Git, зависит от URL-адреса, с которым настроен ваш пульт. Github использует формат URL по умолчанию – HTTPS, который обменивается данными напрямую через веб-протокол:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
https://github.com/user/RepoName.git
Однако вы также можете использовать SSH. Хотя вы не открываете интерактивную оболочку и не выполняете команды, это все еще тот же формат, что и при подключении к обычному серверу Linux с поддержкой SSH:
пользователь @ ipaddress: папка / файл
Используя Github и большинство сервисов, вы подключаетесь к пользователю «git» и получаете доступ к конечной точке .git как к файлу в папке с вашим именем пользователя.
git@github.com: пользователь / RepoName.git
Зачем использовать HTTPS?
Итак, какой из них вы должны использовать? Хотя SSH обычно считается более безопасным, для базового использования Github достаточно HTTPS-аутентификации с паролем. Фактически, сами Github по умолчанию и рекомендует большинству людей использовать HTTPS.
У HTTPS есть много плюсов:
- HTTPS проще. Учитывая то, как это работает на Github, вам просто нужно ввести свое имя пользователя и пароль Github, и вы сможете отправлять и извлекать код. Для обычного пользователя это нормально.
- Вам не нужно манипулировать несколькими ключами SSH, чтобы использовать несколько устройств.
- Порт 443, который использует HTTPS, открыт практически в любом брандмауэре, имеющем доступ к Интернету. Для SSH это не всегда так.
- Проблему аутентификации на основе пароля можно свести к минимуму, используя Токен персонального доступа (PAT) на Github в сочетании с двухфакторной аутентификацией в вашем аккаунте.
Основным недостатком для большинства людей является то, что вы должны вводить свой пароль Git каждый раз, когда нажимаете кнопку. Хотя он добавляется в кеш, он не настроен на постоянное кеширование (хотя это можно изменить). С ключами SSH он просто каждый раз использует файл ключа на диске.
Кроме того, если вы используете 2FA в своей учетной записи Github, вы вынуждены использовать SSH или токен личного доступа. Ваш пароль учетной записи по умолчанию не будет работать.
Зачем использовать SSH?
Заблуждение, что HTTPS как протокол значительно менее безопасен, чем SSH. Оба предоставят вам безопасное соединение, защищенное от атак «злоумышленник посередине» (MITM). Оба протокола будут выполнять свою работу одинаково, пока лежащие в основе ключи защищены. В любом случае оба будут использовать аутентификацию на основе открытого ключа, хотя HTTPS с Git отправит ваш пароль по сети. И оба протокола могут быть настроены для использования многофакторной аутентификации (MFA / 2FA), хотя с Github проще использовать MFA в своей учетной записи, если вы используете ключи SSH.
Где SSH играет ведущую роль, так это с фактором аутентификации – ключом. Одна его длина затрудняет случайную утечку, а из-за того, что она громоздкая и уникальная, она в целом более безопасна. Единственным недостатком является то, что он хранится в виде файла, доступного пользователю, на вашем жестком диске, а не в вашей голове, но, учитывая, насколько плохо люди относятся к безопасности, это, вероятно, лучше.
Кроме того, он не подвержен утечке данных. Он гарантированно не будет использоваться повторно, но он также никогда не хранится на чужом сервере. Поскольку вы предоставляете Github только свой открытый ключ и используете свой закрытый ключ на своей стороне для выполнения проверки подлинности, нет риска того, что он будет раскрыт или даже когда-либо отправлен по сети.
У SSH много недостатков, но их можно смягчить, если вы знаете, что делаете:
SSH можно даже туннелировать через HTTPS при доступе к Github, используя имя хоста ssh.github.com в вашей конфигурации SSH. Хотя это может быть не для всех сервисов Git, это хороший плюс для большого:
Хост github.com Имя хоста ssh.github.com Порт 443
Ключи SSH также могут быть объединены в цепочку с помощью пересылки агента SSH, которая позволяет вам подключиться к удаленному серверу, а затем использовать ключ SSH на вашем клиентском компьютере для аутентификации. Удаленный сервер действует как посредник, не зная вашего SSH-ключа.
Что следует использовать?
Вопрос в том, стоит ли с этим возиться? Если у вас есть опыт работы с командной строкой, просто использовать ключи не так уж сложно, и большинство людей все равно это сделают просто потому, что проще настроить один раз и никогда больше не вводить пароль. Он также лучше работает с 2FA, который, вероятно, следует использовать в большинстве учетных записей Github с высоким уровнем безопасности.
Если вы просто ищете легкий опыт, HTTPS безопасен, пока надежен ваш пароль. Есть причина, по которой Github использует его по умолчанию и даже рекомендует его – он работает хорошо и его легко понять.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)