tech-tips/Программное обеспечение/Версионирование кода/git/Pull из Gitlab через https при включенной 2ФА.md

42 lines
1.7 KiB
Markdown
Raw Normal View History

---
tags: ["git", "git-rebase"]
---
## Исходные данные
В корпоративном #Gitlab есть репозиторий.
В настройках аккаунта включена 2-факторная аутентификация.
`origin` локального репозитория задан через `https://`.
Нужно вытянуть свежие изменения из `origin` в локальный реп.
## Ситуация
При выполнении `git pull` после ввода логина и пароля возникает ошибка:
```
Username for '<https://git.example.com>': %логин%
Password for '<https://user@git.example.com>': %пароль%
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP.
remote: You can generate one at <https://git.example.com/profile/personal_access_tokens>
fatal: Authentication failed for '<https://git.example.com/%репозиторий%>'
```
## Причина
При включенной #2FA нельзя напрямую использовать пароль, вместо этого придуманы личные токены доступа (Personal access tokens), все манипуляции должны происходить с его помощью.
## Решение
1. Создать токен, выставить права `read_repository` и/или `write_repository`
2. Для аутентификации нужно вместо пароля вводить этот токен как он есть:
```
Username for '<https://git.example.com>': user
Password for '<https://user@git.example.com>': %токен%
...
```