использование git send-mail с 2-факторной аутентификацией google
Я хотел бы использовать git send-mail
для отправки патчей вверх по течению, но мой аккаунт gmail использует двухфакторную аутентификацию. Google предоставляет специальные пароли для приложений для таких вещей, но мой вопрос в том, где находится безопасное место для хранения этого пароля для использования с git send-mail?
3 ответа:
Оказывается, у git естьхранилище учетных данных . В Linux, OS X и Windows есть помощники учетных данных, которые могут собирать учетные данные из Связки ключей ОС. Этот ответ имеет несколько примеров.
EDIT
Если вы предпочитаете сохранить патч в папке черновиков, чтобы просмотреть его перед отправкой (или просто чтобы Gmail лучше отслеживал поток), вы можете сделать следующее:
Обратите внимание, что на момент написания статьи git не поддерживает использование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-credential
дляgit-imap-send
. Я написал патч, чтобы исправить это. Он ждет слияния с upstream, но если вам не терпится, он доступен здесь .
Вы можете использовать обычную конфигурацию Git для хранения пароля, например:
Это, конечно, сохранит пароль в виде обычного текста. Вы должны убедиться, что ваш ~/.файл gitconfig не читается другими пользователями.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
Вы также можете хранить пароль в зашифрованном файле и использовать его. Вам все равно придется запомнить и ввести пароль для шифрования, но, по крайней мере, вы сможете выбрать этот пароль. Что-то вроде
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
.
Обновите последнюю, чтобы она могла использовать подсистему учетных данных, а затем сделайте его вариантом по умолчанию, чтобы мы могли в конечном итоге отменить и удалить первый.