Ответ 1
Для 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-сообщение.
Кроме того, если у вас нет телефонной службы, оно все равно работает;)
Это означает, что вам не нужно ждать SMS, и вы сохраняете свой 2FA на своем телефоне.
Однако наличие вашего секретного ключа позволяет вам не ограничиваться клиентом на вашем телефоне.
Вы можете обратиться к любому другому клиенту, например:
- JAuth, красивый настольный клиент с двумя факторами, (codeon GitHub)
- html5-google-authenticator: a клиент аутентификации GAuth веб-страница, где вы можете увидеть свой токен, сгенерированный каждые 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|[email protected]|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 protected]>"
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://[email protected]/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 on Windows), которая включает sed
.
Сохраните учетные данные GitHub
Я рекомендую хранилище учетных данных в Интернете, например lastpass.com
Вам нужно сохранить:
- Ваш пароль учетной записи GitHub
- Секретный ключ 2FA
- Код восстановления 2FA
- Ваш персональный токен