использование git send-mail с 2-факторной аутентификацией google


Я хотел бы использовать git send-mail для отправки патчей вверх по течению, но мой аккаунт gmail использует двухфакторную аутентификацию. Google предоставляет специальные пароли для приложений для таких вещей, но мой вопрос в том, где находится безопасное место для хранения этого пароля для использования с git send-mail?

3 9

3 ответа:

Оказывается, у git естьхранилище учетных данных . В Linux, OS X и Windows есть помощники учетных данных, которые могут собирать учетные данные из Связки ключей ОС. Этот ответ имеет несколько примеров.

EDIT

Если вы предпочитаете сохранить патч в папке черновиков, чтобы просмотреть его перед отправкой (или просто чтобы Gmail лучше отслеживал поток), вы можете сделать следующее:

git config --global imap.host imaps://imap.gmail.com
git config --global imap.user your.email@gmail.com
git config --global imap.port 993
git config --global imap.sslverify false
git config --global imap.folder [Gmail]/Drafts
git format-patch --stdout | git imap-send
Обратите внимание, что на момент написания статьи git не поддерживает использование git-credential для git-imap-send. Я написал патч, чтобы исправить это. Он ждет слияния с upstream, но если вам не терпится, он доступен здесь .

Вы можете использовать обычную конфигурацию Git для хранения пароля, например:

git config --global sendemail.smtpencryption tls
git config --global sendemail.smtpserver mail.example.com
git config --global sendemail.smtpuser fred@example.com
git config --global sendemail.smtpserverport 587
git config --global sendemail.smtppass smbumqjiurmqrywm
Это, конечно, сохранит пароль в виде обычного текста. Вы должны убедиться, что ваш ~/.файл gitconfig не читается другими пользователями.

Вы также можете хранить пароль в зашифрованном файле и использовать его. Вам все равно придется запомнить и ввести пароль для шифрования, но, по крайней мере, вы сможете выбрать этот пароль. Что-то вроде gpg2 должно сделать трюк.

Конечно, в конце концов, единственноедействительно безопасное место для хранения пароля находится между вашими ушами.

Источник

Git 2.0.x / 2.1 (Q3 2014) будет поддерживать git credential ибо git imap-send.
См. commit 791643a from Dan Albert (DanAlbert), теперь объединены в git/git master ветвь:

Imap-send: use git-credential

git-imap-send непосредственно запрашивал пароль, а не использовал git-credential. git-send-email, с другой стороны, поддерживает git-credential.

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


Обновление 2017, для Git 2.14.x / 2.15 (Q4 2017), git imap-send все равно будет развиваться.

См. commit dbba42b, совершить 19079b3, совершить 690307f, commit 200bc38 (14 Sep 2017) by Nicolas Morey-Chaisemartin (nmorey).
(объединено Junio C Hamano -- gitster -- in commit b67f154 , 25 Sep 2017)

"git imap-send" имеет свою собственную реализацию протокола, а также можно использовать более поздние libCurl с поддержкой протокола imap.
Обновите последнюю, чтобы она могла использовать подсистему учетных данных, а затем сделайте его вариантом по умолчанию, чтобы мы могли в конечном итоге отменить и удалить первый.