Настройте Git-клиенты, такие как GitHub для Windows, чтобы не запрашивать аутентификацию
Я установил GitHub для Windows, а также GitExtensions и имею несколько версий git.exe на моем пути.
C:\Users\Rajat\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\cmd\git.exe
C:\Users\Rajat\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\bin\git.exe
E:\cygwin\bin\git.exe
C:\Program Files (x86)\Git\cmd\git.exe
C:\Program Files (x86)\Git\bin\git.exe
Теперь, когда я делаю git push origin master
с любым из последних трех git.exe
s, он запрашивает мое имя пользователя. Но Portable Git не запрашивает имя пользователя. Смотрите следующий скриншот:
Сердцевидный персонаж - это просто ^C
так что игнорируй это.
Как в этом случае осуществляется проверка подлинности? В конечном итоге я хочу, чтобы последние три Gits не запрашивали авторизацию. Как это возможно?
Я нашел два дополнительных файла в GitHub's Git, но сомневаюсь, что они имеют значение:
3 ответа
Что касается GitHub для самой Windows, Paul Betts ( сотрудник GitHub) мягко напоминает всем, что в G4W уже есть помощник по учетным данным (на основе CryptProtect, и я полагаю, что CryptProtectData
функция)
Смотрите его ответ ниже.
Для тех, кто не использует G4W, читайте дальше.
Чтобы добавить к моему предыдущему ответу (при нажатии на GitHub через консоль / командную строку):
Файл как ~/.netrc
(в Unix) или %HOME%/_netrc
(в Windows) может помочь вам не вводить свои учетные данные для каждого нажатия git, которое вы делаете в GitHub.
Вы можете хранить столько учетных данных, сколько вам нужно netrc
файл.
(для GitHub или других провайдеров репо-хостинга)
Но:
- Вы не хотите хранить свою основную учетную запись GitHub для паролей
- Вы не хотите, чтобы те в текстовом файле.
В следующих разделах рассматриваются эти проблемы:
Включите двухфакторную аутентификацию (2FA) в вашей учетной записи GitHub
(3 сентября 2013 г.)
Настройте 2FA через приложение, всегда через приложение, а не через текстовое SMS, если вы можете избежать этого.
Причина в том, что благодаря этому процессу активации у вас есть доступ к вашему двухфакторному секретному ключу, который используется для генерации второй факторной аутентификации каждые 30 секунд:
Таким образом, вы можете перейти к любому клиенту GAuth ( Google Authenticator), ввести тот же секретный ключ 2FA и увидеть тот же код, который вы получите в SMS-сообщении.
Кроме того, если у вас нет телефонной связи, она все еще работает;)
Конечно, первый клиент, который будет использовать это GAuth на вашем телефоне или Android.
Это означает, что вам не нужно ждать SMS, и вы сохраняете 2FA на своем телефоне.
Однако наличие вашего секретного ключа позволяет вам не быть ограниченным клиентом на вашем телефоне.
Вы можете перейти к любому другому клиенту, например:
- JAuth, красивый двухфакторный настольный клиент, ( codeon GitHub)
- https://github.com/gbraad/html5-google-authenticator: веб-страница клиента GAuth Authenticator, где вы можете видеть, что ваш токен генерируется каждые 30 секунд, как если бы вы видели его на своем телефоне или через SMS.
- настольный системный трей
- расширение браузера (например, 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):
(Смотрите также последний раздел о том, где сохранить эти коды)
Зашифруй свой _netrc
файл
(см. учетную запись помощника 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
Я рекомендую онлайн хранилище учетных данных, например https://lastpass.com/
Вам необходимо сохранить:
- Пароль вашей учетной записи GitHub
- Ваш секретный ключ 2FA
- Ваш код восстановления 2FA
- Ваш личный токен
Если вы используете GitHub для Windows, все, что вам нужно сделать, это:
- Убедитесь, что вы вошли в приложение с графическим интерфейсом хотя бы один раз
- Нажмите на ссылку "Git Shell"
GitHub уже решил эту проблему для вас в командной строке как для HTTPS, так и для SSH-пультов
https://help.github.com/articles/set-up-git
В разделе кеширования паролей написано:
Если вы не хотите использовать GitHub для Windows, вы можете скачать помощник для вашей ОС здесь:
Сделайте это, и любой другой git.exe будет работать без запроса пароля.:)