В GitHub существует два пути куда можно пройти аутентификацию: личный аккаунт и репозитории, которые зачастую к нему привязаны. Для корректной работы с ними необходимо пройти проверку подлинности на сервере через два возможных сервиса: по SSH-ключам и API-токену. Данный материал посвящен разбору того, как пользоваться репозиторием, пройдя аутентификацию по методам описанным ранее.
Пробежимся кратко о плюсах и минусах двух методов и выберите, какой из двух способов удобен для вас:
- API: необходимо вводить каждый раз токен, так как он не сохраняется в конфиге в целях безопасности. А так же нужно определить место ее безопасного хранения. Однако удобная интеграция в собственные сервисы и приложения, в основном используется для работы между ПО;
- SSH: хранится на машине пользователя и не нуждается в вводе, а запрашивается из папки пользователя через ssh-agent. Удобно хранить и использовать, при работе с репозиториями.
Аутентификация по GitHub API
Воспользуйтесь аутентификацией через HTTPS по GitHub API, подтверждение подлинности по паролю было отключено с 2021 года. Справа сверху найдите иконку пользователя и выберите Settings, затем в левом меню в самом низу найдите Developer settings.
По схеме выше выберите создание классического токена и дождитесь загрузки страницы:
Пропишите количество дней, которые токен будет действовать, а так же определите возможные функции ключа. После нажмите на кнопку создания ключа!
Скопируйте ваш ключ и пропишите команду, заменив логин и название репозитория:
git add .
git commit
git remote add origin https://github.com/ваш-логин/ваш-репозиторий.git
git push origin main
По логам видим, что выгрузка произошла успешно и теперь мы можем перейти к самому репозиторию:
Аутентификация по GitHub SSH
Процесс заключается в следующем, пользователь на своей стороне создает пару ключей для шифрования: публичный и закрытый. Первый добавляется в аккаунт Github, второй хранится на машине пользователя и позволяет расшифровать информацию зашифрованную этим первым, публичным ключом. При запросе к серверу публичные ключи в аккаунте и на машине отправителя сверяются, подтверждаются закрытым и после предоставляется доступ к репозиториям.
Создадим ключи и выведем их на экран:
cat /home/ваш-пользователь/.ssh/id_rsa.pub
Все действия были выполнены в среде облачного сервера от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
После скопируйте ключ и перейдите на сайт GitHub, где в правом верхнем углу выберите иконку пользователя. После найдите кнопку Settings и нажмите на нее. В открывшемся окне выберете пункт слева SSH and GPG.
Нажмите кнопку New SSH key и введите в открывшееся поле свой ключ, а так же название для него. Обратите внимание, что именно публичный ключ можно распространять и указывать в сервисах, но закрытый должен оставаться на машине. Если нарушители получат к нему доступ, то и к вашим репозиториям тоже.
После необходимо подтвердить паролем от учетной записи, что изменения вносите именно вы. После чего ключ будет доступен в вашем аккаунте:
Обратимся к клиентскому устройству и введем следующую команду в рабочей директории с файлами, которые необходимо поместить в репозиторий:
git add .
git commit
git remote add origin git@github.com:an1ik/koldek.git
git push origin main
В GitHub существуют два способа аутентификации для взаимодействия с репозиториями и личными аккаунтами: через SSH-ключи и API-токены. Каждый из этих методов имеет свои преимущества и недостатки, выбирайте наиболее удобный и безопасный способ в зависимости от ваших потребностей.