Исправление отказа в разрешении (открытый ключ) в Gitlab Windows

Недавно мне понадобилось проверить новое репо с самохостируемого сервера Gitlab. Я сделал все как обычно:

  • Сгенерировал пару ssh-ключей с помощью ssh-keygen (поскольку я работаю на новой машине Windows). Если у вас уже есть ключи ssh (попробуйте ls в вашем ~/.ssh и вы увидите id_rsa и id_rsa.pub), то вам не нужно снова генерировать пары ключей.
  • Добавьте его в раздел ключей SSH на Gitlab.

Но все равно я получил ошибку:

Обычно это должно работать, верно? Да, я делал это бесчисленное количество раз с GitHub, Gitlab, Bitbucket… и не имел никаких проблем.

Кстати, в учетной записи включена 2FA.

Я не знаю причину этого, но у меня есть обходной путь.

Доступ к Gitlab с помощью персонального маркера доступа

Обходным решением является использование персонального маркера доступа Gitlab. Я не пробовал это на Github (так как он отлично работает с SSH-ключом), но думаю, что это тоже должно сработать.

Первый шаг — сгенерировать персональный токен доступа:

Затем введите имя токена и отметьте api.

Затем нажмите на Create personal access token и вы получите токен для использования:

Теперь вернитесь в свой репозиторий и скопируйте стандартный https URL. Он должен выглядеть примерно так:

https://git.some-server.com/group/repo/repo-name.git
Вход в полноэкранный режим Выйти из полноэкранного режима

Вам нужно немного изменить этот URL, используя только что созданный токен:

https://<token_name>:<token>@git.some-server.com/group/repo/repo-name.git
Войти в полноэкранный режим Выйти из полноэкранного режима

Теперь я могу использовать этот URL для клонирования репозитория:

Если у вас уже есть репозиторий, вам просто нужно обновить удаленный url

git remote set-url origin https://<token_name>:<token>@git.some-server.com/group/repo/repo-name.git
Войти в полноэкранный режим Выйти из полноэкранного режима

После этого вы можете нормально тянуть и толкать.

Заключение

Вот и все! Вы снова можете продолжать работу над своим репозиторием. Я все еще не знаю, почему добавление ssh не сработало, но использование персонального маркера доступа является приемлемым решением.

Единственное, что мне не нравится в этом методе, это то, что любой, кто имеет доступ к вашей машине, может работать:

git remote -v
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Так что блокируйте экран, когда вы не за компьютером 😀


Если вам понравился этот пост, обязательно загляните в мой блог https://datmt.com. Там я пишу о #программировании 🙂

Оцените статью
Procodings.ru
Добавить комментарий