Тестирование SSH и HTTPS
На этом этапе мы рассмотрим различия между использованием протоколов HTTPS и SSH для взаимодействия с удалённым хранилищем Git. Хотя оба протокола позволяют извлекать и отправлять код, они используют разные методы аутентификации.
Мы уже настроили удалённое хранилище origin
для использования протокола HTTPS. Попробуем смоделировать клонирование хранилища с использованием обоих протоколов, чтобы увидеть разницу в формате URL-адресов.
Сначала вернитесь в каталог ~/project
:
cd ~/project
Теперь смоделируем клонирование хранилища с использованием протокола HTTPS. Мы будем использовать URL-адрес публичного хранилища, для клонирования которого не требуется аутентификация.
git clone https://github.com/git/git.git git-https-test
Эта команда клонирует официальное хранилище Git в новый каталог с именем git-https-test
. Вы увидите вывод, указывающий на процесс клонирования. Это работает, потому что клонирование публичного хранилища по протоколу HTTPS обычно не требует учётных данных.
Теперь смоделируем клонирование того же хранилища с использованием протокола SSH. Формат URL-адреса для SSH отличается, обычно он выглядит как git@hostname:user/repo.git
.
git clone [email protected]:git/git.git git-ssh-test
При выполнении этой команды вы, скорее всего, увидите сообщение о запросе подтверждения подлинности хоста или ошибку "доступ запрещён". Это происходит потому, что клонирование по протоколу SSH требует аутентификации с использованием SSH-ключей. Поскольку мы не настроили SSH-ключи в этой среде, соединение завершится неудачей или будет запрошено ввод учётных данных.
Cloning into 'git-ssh-test'...
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6qU/mzgpTw4mSjJA9PMpTkCXPzQ7lPkLiA.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Вы можете ввести no
и нажать Enter, чтобы отклонить попытку подключения.
Это демонстрирует основное различие: протокол HTTPS часто проще для публичного доступа (например, клонирования), в то время как SSH предоставляет более безопасный и удобный метод для аутентифицированного доступа (например, отправки изменений) после настройки SSH-ключей.
Теперь вы можете удалить тестовые каталоги:
rm -rf git-https-test git-ssh-test
Понимание, когда использовать HTTPS, а когда SSH, имеет важное значение для управления рабочими процессами Git и обеспечения безопасного доступа к вашим хранилищам.