Как хранить ваш пароль 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.
Этот метод не рекомендуется, но все же, если вы спешите, и больше ничего не работает для вас, просто добавьте новый пульт как
git remote -rm origin
git remote add origin https://username:mypassword@github.com/path/to/repo.git
теперь вам не нужно вводить пароль снова и снова
Примечание. Этот метод не работает с двухэтапными учетными записями авторизации.