Последние новости:

Поиск по сайту:

Чтобы пробить стену лбом, нужен или большой разбег, или много лбов (А. Азольский).

Исправление ошибки «HTTP Basic: Access Denied» и «Fatal Authentication Failure» с помощью GitLab1 мин для чтения

06.07.2020
Как установить GitLab на Debian 9

Итак, на днях зашли на учетную запись GitLab для хранения и отслеживания всех настроек.

Мы создали новый репозиторий в веб-интерфейсе GitLab и начали загружать каталог, который был в нашей персональной системе.

Все было хорошо, пока мы не попытались отправить код в удаленный репозиторий на GitHub. Это дало нам фатальную ошибку: «Authentical failed for xyz repository».

Вот как выглядела ошибка:

destroyer@andreyex:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_profile_username
gitlab_profile_username@gitlab.com': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/gitlab_account_username/gitlab_repository/'

 

Если вы столкнулись с подобной проблемой, позвольте мне показать вам, как исправить эту ошибку.

 

Обработка «удаленного: HTTP Basic: доступ запрещен» Ошибка с GitLab

Основная строка, которая дает некоторое представление о первопричине этой ошибки:

remote: HTTP Basic: Access denied

 

Почему мы это говорим? Потому что ваш репозиторий GitLab использует HTTPS. Ожидается, что между вашей системой и вашим хранилищем будет защищенное соединение.

Теперь, не должно ли это быть автоматически, используя HTTPS? Нет! Уже нет.

GitLab изменил свою политику, и теперь он ожидает, что вы будете использовать свой собственный ключ SSH для аутентификации в своем хранилище GitLab.

Другими словами, чтобы отправить код из локальной системы в удаленный репозиторий GitLab, вы должны создать пару ключей SSH и добавить открытый ключ в свой профиль GitLab .

Мы используем Linux, поэтому лучше всего выполнить шаги в Linux. Если вы используете Windows или macOS, вы должны найти как сделать то же самое в вашей операционной системе.

Сначала проверьте, если у вас уже есть ключи SSH:

ls ~/.ssh/id_rsa.pub

 

Если у вас его нет, создайте его, используя следующий раздел, иначе перейдите к разделу после этого.

Читать  Команда Sysctl в Linux

 

Создание ключей SSH (если у вас его еще нет)

Мы используем Ubuntu, поэтому шаги для Ubuntu. Если вы используете другие дистрибутивы, шаги могут отличаться или не отличаться.

Откройте терминал и используйте следующую команду:

ssh-keygen

 

Вы должны увидеть результат вроде этого:

Generating public/private rsa key pair.
Enter file in which to save the key (/user_home/.ssh/id_rsa):

 

Нажмите клавишу ввода и перейдите с выбором по умолчанию. Вас могут попросить ввести пароль для защиты вашего ключа SSH. Если вы устанавливаете пароль, вам придется вводить его каждый раз, когда вы пытаетесь установить SSH-соединение, используя сгенерированный SSH-ключ. Вы можете или не можете установить пароль для ключа SSH.

 

Добавление открытого ключа SSH в GitLab

Если вы создали ключ SSH на своем персональном компьютере, вы должны найти его в каталоге .ssh вашего домашнего каталога в большинстве дистрибутивов Linux. Отобразите его содержимое с помощью этой команды:

cat ~/.ssh/id_rsa.pub

 

Скопируйте содержимое вашего открытого ключа. Теперь войдите в свою учетную запись GitLab, перейдите в «Настройки пользователя» и найдите ключи SSH на левой боковой панели. Кроме того, вы можете просто перейти на эту страницу при входе в систему.

Вы увидите поле для добавления открытого ключа. Просто вставьте ключ сюда. Дайте ему название, чтобы легко распознать, какому компьютеру принадлежит этот ключ. Если вы не сделали что-то самостоятельно, у ключей SSH нет срока действия по умолчанию. Так что оставьте поле истечения нетронутым.

Сделано со всем? Нажмите кнопку «Добавить ключ».

Вы можете добавить более одного ключа SSH. Это нормально, если у вас более одного компьютера.

 

Проверьте, можете ли вы отправить код в GitLab сейчас

Итак, вы добавили свой SSH-ключ в свой профиль GitLab. Теперь все должно быть хорошо. Время проверить это.

Читать  Команда запуска Docker с примерами

Попробуйте нажать свой код еще раз. Посмотри, работает ли это. Обычно вы должны видеть вывод, как этот, если он успешен:

destroyer@andreyex:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_account_username
Password for 'https://gitlab_account_username@gitlab.com': 
Enumerating objects: 127, done.
Counting objects: 100% (127/127), done.
Delta compression using up to 4 threads
Compressing objects: 100% (122/122), done.
Writing objects: 100% (127/127), 401.30 KiB | 6.37 MiB/s, done.
Total 127 (delta 14), reused 0 (delta 0)
remote: Resolving deltas: 100% (14/14), done.
To https://gitlab.com/gitlab_account_username/gitlab_repository.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

 

Все еще видите ошибку? Имейте в виду разницу между именем пользователя профиля GitLab и именем пользователя учетной записи!

Это нелегко.

GitLab имеет два имени пользователя: имя пользователя профиля и имя пользователя учетной записи.

Вы можете легко изменить имя пользователя профиля без каких-либо последствий. Но изменение имени пользователя аккаунта может привести к катастрофическим последствиям.

Имя пользователя учетной записи — это то, что вы увидите в URL вашего репозитория GitLab:

https://gitlab.com/gitlab_account_username/repository_name

При создании нового репозитория GitLab со своего веб-сайта GitLab предложила использовать имя пользователя профиля в настройках Git config на персональном компьютере.

Мы сделали это и попытались использовать одно и то же имя пользователя профиля, передавая код в хранилище. Неудивительно, что это было отклонено даже после добавления ключа SSH:

destroyer@andreyex:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_profile_username
Password for 'https://gitlab_profile_username@gitlab.com': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/gitlab_account_username/gitlab_repository.git/'

Итак, хитрость заключается в том, чтобы использовать здесь имя пользователя учетной записи GitLab. Когда мы это сделали, передача в удаленный репозиторий GitLab прошла успешно.

 

Это сработало для вас?

Мы надеемся, что это помогло вам с ошибкой «fatal: Authentication fail».

Читать  Что такое $@ в сценарии Bash

Это сработало для вас? Дайте нам знать с да или нет в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Евгений

не помогло(

ivan

А как быть если тоже самое происходит во время выполнения задания в gitlab runner ?

Это может быть вам интересно

Статьи партнеров:

Рекомендуемое
Если вы установили SSL-сертификат для своего домена, следующим шагом должна…
2
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить

Спасибо! Ваша заявка принята

close

Спасибо! Ваша заявка принята

close