использование 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-sendgit-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.
Обновите последнюю, чтобы она могла использовать подсистему учетных данных, а затем сделайте его вариантом по умолчанию, чтобы мы могли в конечном итоге отменить и удалить первый.