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

Я установил GitHub для Windows, а также GitExtensions и имею несколько версий git.exe на моем пути.

enter image description here

C:UsersRajatAppDataLocalGitHubPortableGit_93e8418133eb85e81a81e5e19c272776524496c6cmdgit.exe
C:UsersRajatAppDataLocalGitHubPortableGit_93e8418133eb85e81a81e5e19c272776524496c6bingit.exe
E:cygwinbingit.exe
C:Program Files (x86)Gitcmdgit.exe
C:Program Files (x86)Gitbingit.exe

теперь, когда я делаю git push origin master С любым из последних трех git.exes, он запрашивает мое имя пользователя. Но портативный Git не запрашивает имя пользователя. Смотрите следующий скриншот:

enter image description here

символ в форме сердца-это просто ^C Так что игнорируй.

как выполняется аутентификация забота в этом случае? В конечном счете, я хочу, чтобы последние три ГИТа не просили разрешения. Как такое возможно?

Я нашел два дополнительных файла в Git GitHub, но я сомневаюсь, что они вообще имеют значение:

enter image description here

3 ответов


для самого Github для Windows,Пол Беттс (персонал GitHub) мягко напоминает всем о том, что G4W уже включает в себя помощник учетных данных (исходя из CryptProtect и я полагаю CryptProtectData функции)
См.его ответ ниже.

для тех, кто не использует G4W, читайте дальше.


добавить к моему предыдущий ответ (при нажатии на GitHub через консоль / командную строку):

файл типа ~/.netrc (в Unix) или %HOME%/_netrc (в Windows) может помочь вам!--27-->избегайте ввода учетных данных для каждого git push вы бы сделать GitHub.

вы можете хранить столько учетных данных нужно в .
(для GitHub или других хостинг-провайдеров РЕПО)
Но:

  • вы не хотите хранить свою основную учетную запись пароля GitHub
  • вы не хотите те, что в текстовом файле.

эти вопросы рассматриваются в следующих разделах:


включить двухфакторная аутентификация (2FA) на вашей учетной записи GitHub

(3 сентября 2013)

настройка 2FA через приложение, всегда через приложение, никогда через текстовое SMS, если вы можете избежать этого.

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

two factor secret string

таким образом, вы можете пойти к любой GAuth ( Google Authenticator) клиента введите тот же секретный ключ 2FA, и вижу точно тот же код, который вы получите через SMS-сообщение.
Кроме того, если у вас нет телефонной службы, она все еще работает;)

конечно, the первый клиент для использования GAuth на вашем телефоне android или iphone.

GAuth on Android

это означает, что вам не нужно ждать SMS, и вы держите свой 2FA на телефоне.

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

для всех этих клиентов (на вашем телефоне с GAuth, или с настольным клиентом или веб-страницей), вам понадобится ваш двухфакторный секретный ключ.

если вы активировали 2FA через SMS:

  • вы не знаете свой секретный ключ
  • вы не можете использовать любой другой клиент GAuth
  • вы ограничены получением токена через телефон (если у вас есть телефонная служба и/или если у вас есть телефон вообще)

Примечание: Если вы добавили ключ в Клиент Gauth на Android, не запомнив сначала сказал секретный ключ,еще не все потеряно.
(но вам нужен корневой телефон, хотя)

$ adb shell
# sqlite3 /data/data/com.google.android.apps.authenticator/databases/databases
sqlite> select * from accounts;
1|your@email.address|your2factorkey|0|0
sqlite> .quit
#exit

не забудьте получить, а затем сохранить связанные коды восстановления (в Account Settings раздел вашей учетной записи GitHub):

Recovery code

(см. Также последний раздел о здесь для сохранения этих кодов)


шифровать

(см. Credential helper netrc с git1.8.3+: шифрование gpg)

вам нужно зашифровать в этом файле, по крайней мере, эти две учетные данные:

machine github.com
login username
password xxxx
protocol https

machine gist.github.com
login username
password xxxx
protocol https

вы тогда держите только ~/.netrc.gpg или %HOME%/_netrc.gpg

но, если вы включите новую двухфакторную аутентификацию, описанную выше,'xxxx 'не будет вашей учетной записью GitHub: см. Следующий раздел о" личном доступе Знак."


создать персональный токен доступа

вы не сможете нажать с помощью пароля GitHub, если вы активировали 2FA.

Anonymous access to user/repo.git denied

вот что вы увидите (то gpg потому, что я использую netrc набор помощника):

C:\Users\VonC\prog\git\git>git push origin
Using GPG to open %HOME%/_netrc.gpg: [gpg2 --decrypt %HOME%/_netrc.gpg]

You need a passphrase to unlock the secret key for
user: "auser <email@email.com>"
2048-bit RSA key, ID A2EF56, created 2012-09-12 (main key ID DC43D6)

remote: Anonymous access to VonC/git.git denied.                      <=====
fatal: Authentication failed for 'https://VonC@github.com/VonC/git/'  <=====

так что иди в Developer раздел вашей учетной записи GitHub (подраздел Personal access tokens), и создать Личный Токен Доступа:

Personal token

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

но разница с вашим основным паролем учетной записи GitHub:
вы можете отозвать личный токен доступа (и генерировать новый), сохраняя при этом ваш основной пароль не изменился.

если вы зашифровали свой основной пароль GitHub в вашем ~/.netrc.gpg файл, вы можете заменить его новым личным токеном:

gpg -d %HOME%\_netrc.gpg | sed "s/yourPassord/YourPersonalAccessToken/g" | gpg -e -r auser --yes -o %HOME%\_netrc.gpg

в множественной строке для удобочитаемости:

gpg -d %HOME%\_netrc.gpg | 
  sed "s/yourPassord/YourPersonalAccessToken/g" | 
  gpg -e -r auser --yes -o %HOME%\_netrc.gpg

это работает даже на Windows, с помощью unix-как GoW (Gnu на Windows), которая включает sed.


сохраните учетные данные GitHub

я рекомендую онлайн хранилище учетных данных типа lastpass.com

вам нужно сохранить:

  • ваш пароль учетной записи GitHub
  • ваш секретный ключ 2FA
  • ваш код восстановления 2FA
  • Ваш персональный маркер

LastPass


Если вы используете GitHub для Windows, все что вам нужно сделать это:

  1. убедитесь, что вы вошли в приложение GUI по крайней мере один раз
  2. нажмите на ссылку "Git Shell"

GitHub уже решил эту проблему для вас в командной строке, как для HTTPS, так и для SSH-пультов


https://help.github.com/articles/set-up-git

раздел кэширования паролей гласит:

Если вы не хотите использовать GitHub для Windows, вы можете скачать помощник для вашей ОС здесь:

сделайте это и любой другой git.ехе будет работать без запроса пароля. :)