Настройте клиенты Git, такие как GitHub для Windows, чтобы не запрашивать аутентификацию
Я установил GitHub для Windows, а также GitExtensions и имею несколько версий git.exe на моем пути.
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.exe
s, он запрашивает мое имя пользователя. Но портативный Git не запрашивает имя пользователя. Смотрите следующий скриншот:
символ в форме сердца-это просто ^C
Так что игнорируй.
как выполняется аутентификация забота в этом случае? В конечном счете, я хочу, чтобы последние три ГИТа не просили разрешения. Как такое возможно?
Я нашел два дополнительных файла в Git GitHub, но я сомневаюсь, что они вообще имеют значение:
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 секунд:
таким образом, вы можете пойти к любой GAuth ( Google Authenticator) клиента введите тот же секретный ключ 2FA, и вижу точно тот же код, который вы получите через SMS-сообщение.
Кроме того, если у вас нет телефонной службы, она все еще работает;)
конечно, the первый клиент для использования GAuth на вашем телефоне android или iphone.
это означает, что вам не нужно ждать SMS, и вы держите свой 2FA на телефоне.
однако наличие секретного ключа позволяет вам не ограничиваться клиентом на вашем телефоне.
Вы можете перейти к любому другому клиенту, например:
- JAuth, красивый двухфакторный настольный клиент, (codeon На GitHub)
- html5-google-Аутентификатор: a Веб-страница клиента Gauth Authenticator где вы можете увидеть ваш токен генерируется каждые 30 секунд, как вы бы увидеть их на телефоне или через SMS.
- a настольный системный лоток
- расширение для браузера (например,gauth-authenticator для FireFox)
для всех этих клиентов (на вашем телефоне с 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):
(см. Также последний раздел о здесь для сохранения этих кодов)
шифровать
(см. 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
), и создать Личный Токен Доступа:
маркер не требует двухфакторной аутентификации: вы можете использовать его в качестве пароля _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
- Ваш персональный маркер
Если вы используете GitHub для Windows, все что вам нужно сделать это:
- убедитесь, что вы вошли в приложение GUI по крайней мере один раз
- нажмите на ссылку "Git Shell"
GitHub уже решил эту проблему для вас в командной строке, как для HTTPS, так и для SSH-пультов
https://help.github.com/articles/set-up-git
раздел кэширования паролей гласит:
Если вы не хотите использовать GitHub для Windows, вы можете скачать помощник для вашей ОС здесь:
сделайте это и любой другой git.ехе будет работать без запроса пароля. :)