Как использовать менеджер паролей для предоставления личного токена доступа к git push / pull

#bash #git #shell #security #gitlab

#bash #git #оболочка #Безопасность #gitlab

Вопрос:

Контекст

Предполагая, что:

  • У меня есть репозиторий на GitLab, и я уже клонировал его на своей машине.
  • У меня есть токен GitLab, позволяющий мне отправлять и извлекать из этого репозитория.
  • Этот токен уже сохранен в моем хранилище Bitwarden.
  • Благодаря командной строке Bitwarden я могу программно аутентифицировать / блокировать / разблокировать свое хранилище.

Вопрос

Есть ли способ программно связать / передать токен GitLab, полученный на лету Bitwarden, с командами git push и pull для аутентификации / авторизации этих операций?

Расследования

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

  • Токен GitLab можно поместить в файл git credentials helper.store. Здесь токен GitLab должен храниться в виде обычного текста в файле хранилища.
  • Удаленные URL-адреса git можно изменить, чтобы включить в них учетные данные. Здесь токен GitLab должен храниться в виде обычного текста в удаленных URL-адресах git.

Примечания

  • Я не могу использовать ключи SSH, мне нужно оставаться на протоколе HTTPS.
  • Версия git, на которую я ориентируюсь, предлагается из официальных пакетов Ubuntu ( 2.17.1 на момент написания).

Комментарии:

1. Вы смотрели раздел пользовательских помощников gitcredentials в документации? Похоже, в этом есть почти все, что вам нужно.

2. Эй, @larsks, Нет, я не смотрел, но теперь, когда я прочитал это (вместе с кодом в AZMCode / git-credential-bw, предложенным @VonC), это, кажется, идеально подходит для моего варианта использования. Теперь мне нужно разобраться с деталями реализации, я вернусь сюда, чтобы дать отзыв.

3. @larsks Версия git, которую я использую 2.17.1 , для которой в документации нет CUSTOM HELPERS раздела с тем же содержимым (для 2.13.7 он почти пуст). Знаете ли вы, является ли это недавно введенной функцией или недавно была обновлена только документация?

4. Я не уверен, когда изменилась документация. Возможно, вы захотите обновить свой Git; текущая версия 2.29.2.

5. @HadrienTOMA Я не думаю, что вам нужно обновляться: любой git-credential-xxx исполняемый файл все равно будет рассматриваться как пользовательский помощник, даже в версии 2.17.

Ответ №1:

Вы можете проверить, выполняет ли пользовательский помощник учетных данных Git AZMCode/git-credential-bw то, что вам нужно.

Это проект по интеграции командной строки Bitwarden с Git, чтобы избежать неудобств, связанных с многократным повторным вводом пароля или управлением несколькими учетными данными Bitwarden для разных сайтов.

 git config credential.helper bw
  

Комментарии:

1. Это кажется интересным, мне нужно что-то гораздо более простое, но я думаю, что смогу извлечь нужные части. Большое вам спасибо, я вернусь к своему прогрессу в этом здесь.