2010-10-14 17:17:28 +0000 2010-10-14 17:17:28 +0000
174
174

Как сделать так, чтобы GitHub не спрашивал моего имени пользователя и пароля на GitHub?

Я работаю с репо на GitHub и каждый раз, когда я пытаюсь что-то нажать, он запрашивает мое имя пользователя и пароль на GitHub. Я не хочу, чтобы он это делал.

Я попробовал инструкции по настройке вашего email в Git'е , а именно по настройке Git-переменных github.user и github.token, но это ничего не изменило.

Я не понимаю, почему это происходит.

Ответы (12)

215
215
215
2011-08-08 22:36:29 +0000

У меня сегодня была похожая проблема: Я все испортил в своей рабочей копии, поэтому решил переименовать каталог и снова клонировать свой проект с github. Но после этого мне пришлось ввести свой пароль, чтобы сделать любой запрос pull/push, вместо того, чтобы вводить парольную фразу всего один раз, как я это делал раньше.

Это было потому, что сегодня я использовал протокол https для клонирования проекта! Чтобы проверить, какой протокол вы используете, просто запустите

git config -l

и посмотрите на строку, начинающуюся с ‘remote.origin.url’.

Для переключения протоколов:

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_username и your_project должны быть заменены соответствующим именем репозитория и владельцем этого репозитория. Имя пользователя будет вашим, если вы являетесь владельцем репозитория, или имя пользователя владельца репозитория в противном случае.

34
34
34
2010-10-14 17:28:04 +0000

Вам нужно настроить ssh-agent, с которым вы должны аутентифицироваться только один раз. Смотрите этот ответ в SO, чтобы узнать, как это сделать.

31
31
31
2013-12-03 22:40:15 +0000

Если вы используете HTTPS вместо SSH, вы можете следовать следующему:

  1. Найдите ваш удаленный URL (remote.origin.url) с помощью

  2. Ваш удаленный URL будет выглядеть следующим образом : https://{USERNAME}@github.com/{USERNAME}/{REPONAME}.git

  3. Выполните эту команду :

26
26
26
2014-11-21 04:27:04 +0000

Я предпочитаю использовать HTTPS, я считаю, что это проще и безопаснее, чем настройка ssh ключей.

Используя HTTPS, вы можете предотвратить git'ы спрашивать ваше имя пользователя для github пультов дистанционного управления с помощью:

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

И вы можете, по крайней мере, уменьшить частоту git'ов, запрашивающих ваш пароль с:

git config --global credential.helper 'cache --timeout=28800'

Где 28800 - это 8 часов. Я использую эту настройку для ввода пароля только один раз, когда начинаю свой рабочий день.

После этого у вас будут эти записи в вашем ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Источник: http://git-scm.com/docs/git-credential-cache http://git-scm.com/docs/git-config

6
6
6
2014-02-23 11:54:29 +0000

Если вы используете HTTPS в Windows, попробуйте Git Credential Store - он использует Windows Credential Store для хранения вашего имени и пароля.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

Тогда в следующий раз, когда вы введете свое имя и пароль, он запомнит их для вас.

6
6
6
2010-10-14 19:45:54 +0000

Когда вы настраиваете ssh ключ для github, если это не ваш ключ по умолчанию, вам нужно будет добавить раздел к вашему ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
5
5
5
2013-08-11 03:17:37 +0000

Также, если вы хотите, чтобы ваш пароль запрашивался постоянно, но только не ваше имя пользователя, то вы настраиваете удаленный доступ как HTTPS с именем пользователя… Вот так…

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

После этого вам каждый раз будет запрашиваться пароль, но не ваше имя пользователя.

Это то, как я предпочитаю, так как мне нравится, когда меня заставляют вводить мой github пароль перед тем, как поделиться им со всем миром.

2
2
2
2014-09-25 19:45:49 +0000

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

Если вы используете 2-факторный auth, то указание имени пользователя/пароля не сработает - вам будет отказано в доступе. Но вы можете использовать токен доступа к приложению и воспользоваться помощником git’s credential helper, чтобы кэшировать его за вас. Вот соответствующие ссылки:

И я не помню, где я это видел, но когда у вас спрашивают имя пользователя - вот куда вы вставляете токен доступа к приложению. Затем оставьте пароль пустым. Поработал над моим маком.

2
2
2
2016-06-19 21:27:34 +0000

используйте SSH

Чтобы GitHub не запрашивал пароль во время нажатия, в идеале вы должны использовать SSH (git@github.com:...) вместо HTTPS URL (https://github.com/...) и добавить SSH-ключ к вашей учётной записи GitHub . Смотрите: Какой удалённый URL следует использовать?

, помощник по учётным записям

Иначе, если вам действительно нужно использовать HTTPS, для кэширования вашего пароля GitHub в Git'е , вы должны использовать a credential helper, чтобы сказать Git'у, чтобы он запомнил ваше имя пользователя и пароль GitHub'а каждый раз, когда он говорит с GitHub'ом.

  • Mac: git config --global credential.helper osxkeychain (osxkeychain helper требуется),
  • Windows: git config --global credential.helper wincred
  • Linux и прочее: git config --global credential.helper cache

.netrc

Другой способ - использовать настройку пользователя/пароля в ~/.netrc (_netrc в Windows), e. g.

machine github.com
login USERNAME
password PASSWORD

OAuth

git push https://4UTHT0KEN@github.com/foo/bar

Сопутствующие:

1
1
1
2016-06-05 12:21:50 +0000

Спрашивать имя пользователя меня раздражает, но спрашивать пароль приятно, так как это гарантирует, что вы действительно хотите выйти на публику со своими изменениями…

Так что я просто добавляю это к моему “.gitconfig”

[url "https://myusername@github.com"]
    insteadOf = https://github.com
1
1
1
2016-04-05 14:31:43 +0000

Также, если вы используете Windows, вы можете использовать:

$ git config --global credential.helper wincred

, вам просто нужно зарегистрироваться ещё раз, и тогда git запомнит.

0
0
0
2016-07-07 13:37:29 +0000

Используйте Git Credential Manager for Windows , если вы работаете под Windows.

Этот проект включает :

  • Безопасное хранение паролей в Магазине Windows Credential Store
  • Поддержка многофакторной аутентификации для Visual Studio Team Services
  • Поддержка двухфакторной аутентификации для GitHub
  • Поддержка генерации и использования персональных токенов доступа для Visual Studio Team Services и GitHub -. Поддержка неинтерактивного режима для Visual Studio Team Services при поддержке Azure Directory
  • Аутентификация Kerberos для Team Foundation Server
  • Дополнительные настройки для оптимизации агентов сборки

Просто скачайте последнюю версию и установите ее.

Как использовать

Не используете. Она по волшебству работает, когда нужны учетные данные.