Как хранить ваш пароль github https для Linux в цепочке ключей терминала?

Это становится еще более важным сейчас с новой двухфакторной аутентификацией, поскольку каждый раз, когда требуется пароль на терминале, нужно создавать новый токен. По сути, я ищу эквивалент osxkeychain, доступный в OS X, который я мог бы использовать на настольных компьютерах и серверах Linux:

git config --global credential.helper osxkeychain

Я искал возможные решения, но пока мне не нравится ни одно из них:

  • ssh вместо https - не рекомендуется, а ссылки на GitHub недоступны
  • cache --timeout=3600 - срок его действия истечет, а повторный ввод пароля - это перетаскивание с новым 2FA
  • gnome-keyring - не работает на безголовом сервере (по крайней мере, не слишком элегантно - ssh keyphrase keyring гораздо приятнее)
  • зашифрованный файл.netrc на моем методе работы с жестким диском - ручная реализация ключей?

Да ладно, для Linux должна быть какая-то правильная цепочка ключей на основе терминала, которую можно подключить к git credential.helper!

3 ответа

Я все еще рекомендовал бы метод, который я описал в " Есть ли способ пропустить ввод пароля при использованииhttps://github.com"

Шифрование вашего .netrc позволяет хранить несколько учетных данных (для GitHub, BitBicket и...) в одном файле и использовать их через помощника по учетным данным git netrc (Git1.8.3+).

И это совместимо с двухфакторной аутентификацией Github, как я подробно описал в разделе " Настройка клиентов Git, таких как GitHub для Windows, чтобы не запрашивать аутентификацию".

Работает на Windows (и Linux или Mac).
И вы можете ограничить количество минут / часов, в течение которых gpg больше не будет запрашивать пароль для секретного ключа.

В 2022 году ответом будет использование кроссплатформенного GCM (Git Credential Manager) от Microsoft.

См. « Git Credential Manager: аутентификация для всех » (Обеспечение безопасного доступа к исходному коду важнее, чем когда-либо. Git Credential Manager помогает упростить эту задачу) от Мэтью Джона Читама (старший инженер-программист @github).

Привет, линукс!

Стремясь стать универсальным решением для аутентификации Git, мы усердно работали над тем, чтобы GCM хорошо работал в различных дистрибутивах Linux, уделяя основное внимание дистрибутивам на основе Debian.

Сегодня у нас есть пакеты Debian, доступные для загрузки с нашей страницы выпусков GitHub , а также tar-архивы для других дистрибутивов (только для 64-разрядной версии Intel). Построение на платформе .NET означает сокращение усилий по сборке и запуску везде, где работает среда выполнения .NET. Со временем мы надеемся расширить нашу матрицу поддержки дистрибутивов и архитектур ЦП (например, добавив поддержку ARM64).

Из-за широкого и разнообразного характера дистрибутивов Linux важно, чтобы GCM предлагал множество различных вариантов хранения учетных данных. В дополнение к файлам, зашифрованным GPG, мы добавили поддержку API секретных служб через libsecret(см. также связку ключей GNOME ), которая обеспечивает работу, аналогичную той, что мы предоставляем сегодня в GCM для Windows и macOS.

См. Установка Linux и дополнительная настройка .

Этот метод не рекомендуется, но все же, если вы спешите, и больше ничего не работает для вас, просто добавьте новый пульт как

git remote -rm origin 

git remote add origin https://username:mypassword@github.com/path/to/repo.git

теперь вам не нужно вводить пароль снова и снова

Примечание. Этот метод не работает с двухэтапными учетными записями авторизации.

Другие вопросы по тегам