Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, настроено ли удалённое хранилище Git на использование протокола HTTPS. Мы рассмотрим команду git remote -v для просмотра URL-адресов удалённых хранилищ и конкретно проверим схему URL-адреса.
Путём выполнения практических шагов вы создадите тестовое хранилище, добавите удалённое хранилище по протоколу HTTPS и используете команду git remote -v для подтверждения настройки. В результате этого практического занятия вы получите знания, позволяющие убедиться, что ваше локальное хранилище подключено к правильному удалённому расположению с использованием желаемого протокола, а также понять разницу между настройками удалённых хранилищ по протоколам HTTPS и SSH.
Проверьте вывод git remote -v на наличие HTTPS
На этом этапе мы рассмотрим, как проверить URL-адрес удалённого хранилища Git, с особым вниманием к протоколу HTTPS. Понимание URL-адреса удалённого хранилища имеет решающее значение, так как оно сообщает вашему локальному хранилищу Git откуда извлекать код и куда отправлять свои изменения.
Сначала создадим простое хранилище Git для работы. Перейдите в каталог проекта и инициализируйте новое хранилище Git:
cd ~/project
mkdir my-remote-test
cd my-remote-test
git init
Теперь добавим URL-адрес удалённого хранилища. Для демонстрационных целей мы используем заполнитель URL-адреса. В реальной ситуации это будет URL-адрес вашего хранилища на платформе, такой как GitHub, GitLab или Bitbucket.
git remote add origin https://github.com/user/repo.git
Эта команда добавляет удалённое хранилище с именем origin с указанным URL-адресом по протоколу HTTPS. origin - это обычное имя для основного удалённого хранилища.
Теперь, чтобы проверить URL-адрес удалённого хранилища, используем команду git remote -v. Флаг -v означает "подробный" и покажет URL-адреса как для извлечения, так и для отправки изменений.
git remote -v
Вы должны увидеть вывод, похожий на следующий:
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
Этот вывод подтверждает, что в вашем хранилище есть удалённое хранилище с именем origin, настроенное для использования протокола HTTPS как для извлечения, так и для отправки изменений. Метка (fetch) указывает на URL-адрес, используемый при получении изменений из удалённого хранилища, а метка (push) - на URL-адрес, используемый при отправке локальных изменений в удалённое хранилище.
Использование протокола HTTPS для удалённых хранилищ является распространённым, особенно для публичных хранилищ или когда вы аутентифицируетесь с использованием имени пользователя и пароля или персонального токена доступа. Важно знать, как проверить эту настройку, чтобы убедиться, что ваше локальное хранилище подключено к правильному удалённому расположению с использованием желаемого протокола.
Проверка схемы URL
На этом этапе мы конкретно проверим, что URL-адрес удалённого хранилища использует схему HTTPS. Хотя команда git remote -v показывает полный URL-адрес, иногда вам может понадобиться проверить протокол программно или просто подтвердить, какой протокол используется.
Мы можем сделать это, перенаправив вывод команды git remote -v в grep и выполнив поиск строки "https".
Сначала убедитесь, что вы находитесь в каталоге my-remote-test:
cd ~/project/my-remote-test
Теперь выполните команду git remote -v и перенаправьте её вывод в grep:
git remote -v | grep "https"
Если URL-адрес удалённого хранилища origin действительно использует протокол HTTPS, вы должны увидеть вывод, похожий на следующий:
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
Если вывод пуст, это означает, что удалённое хранилище origin не настроено с использованием URL-адреса по протоколу HTTPS.
Понимание схемы URL-адреса (например, https:// или git@) имеет важное значение, так как она определяет, как Git будет аутентифицироваться на удалённом сервере. Протокол HTTPS обычно использует имя пользователя/пароль или токены, в то время как SSH использует SSH-ключи. Знание, какая схема настроена, помогает вам решать проблемы с подключением или понимать используемый метод безопасности.
Эта простая проверка является быстрым способом подтвердить используемый протокол без необходимости вручную разбирать полный URL-адрес.
Тестирование 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 git@github.com: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 и обеспечения безопасного доступа к вашим хранилищам.
Резюме
В этом практическом занятии мы научились проверять, настроено ли удалённое хранилище Git для использования протокола HTTPS. Мы начали с инициализации нового хранилища Git и добавления удалённого хранилища с использованием URL-адреса по протоколу HTTPS. Основной командой для проверки URL-адреса удалённого хранилища и его протокола была git remote -v, которая отображает URL-адреса для извлечения и отправки кода для каждого настроенного удалённого хранилища.
Мы подтвердили, что вывод команды git remote -v ясно показывает схему URL-адреса, что позволяет нам определить, используется ли протокол HTTPS. Этот процесс важен для понимания того, как ваше локальное хранилище взаимодействует с его удалённой версией, и для обеспечения использования желаемого протокола соединения.



