Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, настроено ли удалённое хранилище Git на использование протокола HTTPS. Мы рассмотрим команду git remote -v для просмотра URL-адресов удалённых хранилищ и конкретно проверим схему URL-адреса.

Путём выполнения практических шагов вы создадите тестовое хранилище, добавите удалённое хранилище по протоколу HTTPS и используете команду git remote -v для подтверждения настройки. В результате этого практического занятия вы получите знания, позволяющие убедиться, что ваше локальное хранилище подключено к правильному удалённому расположению с использованием желаемого протокола, а также понять разницу между настройками удалённых хранилищ по протоколам HTTPS и SSH.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/SetupandConfigGroup -.-> git/clone("Clone Repo") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/rm("Remove Files") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/config -.-> lab-560076{{"Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS"}} git/init -.-> lab-560076{{"Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS"}} git/clone -.-> lab-560076{{"Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS"}} git/status -.-> lab-560076{{"Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS"}} git/rm -.-> lab-560076{{"Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS"}} git/remote -.-> lab-560076{{"Как проверить, настроено ли удалённое хранилище Git для использования протокола HTTPS"}} end

Проверка 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 [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 и обеспечения безопасного доступа к вашим хранилищам.

Резюме

В этом практическом занятии мы научились проверять, настроено ли удалённое хранилище Git для использования протокола HTTPS. Мы начали с инициализации нового хранилища Git и добавления удалённого хранилища с использованием URL-адреса по протоколу HTTPS. Основной командой для проверки URL-адреса удалённого хранилища и его протокола была git remote -v, которая отображает URL-адреса для извлечения и отправки кода для каждого настроенного удалённого хранилища.

Мы подтвердили, что вывод команды git remote -v ясно показывает схему URL-адреса, что позволяет нам определить, используется ли протокол HTTPS. Этот процесс важен для понимания того, как ваше локальное хранилище взаимодействует с его удалённой версией, и для обеспечения использования желаемого протокола соединения.