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

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

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

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

156 голосов | спросил picardo 14 +04002010-10-14T21:17:28+04:00312010bEurope/MoscowThu, 14 Oct 2010 21:17:28 +0400 2010, 21:17:28

12 ответов


27

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

ответил Benjamin Bannier 14 +04002010-10-14T21:28:04+04:00312010bEurope/MoscowThu, 14 Oct 2010 21:28:04 +0400 2010, 21:28:04
205

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

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

git config -l

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

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

git config remote.origin.url [email protected]:the_repository_username/your_project.git

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

ответил Sergio Morstabilini 9 AM00000020000002931 2011, 02:36:29
28

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

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

    git config -l
    

    благодаря Серхио Морстабилини

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

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

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    
ответил Eray 4 WedEurope/Moscow2013-12-04T02:40:15+04:00Europe/Moscow12bEurope/MoscowWed, 04 Dec 2013 02:40:15 +0400 2013, 02:40:15
24

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

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

git config --global url."https://[email protected]".insteadOf "https://github.com"

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

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

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

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

[url "https://[email protected]"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

Источник:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config

ответил stefanmaric 21 52014vEurope/Moscow11bEurope/MoscowFri, 21 Nov 2014 07:27:04 +0300 2014, 07:27:04
6

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

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.

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

ответил Brian Burns 23 FebruaryEurope/MoscowbSun, 23 Feb 2014 15:54:29 +0400000000pmSun, 23 Feb 2014 15:54:29 +040014 2014, 15:54:29
5

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

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
ответил Daenyth 14 +04002010-10-14T23:45:54+04:00312010bEurope/MoscowThu, 14 Oct 2010 23:45:54 +0400 2010, 23:45:54
5

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

git config remote.origin.url https://[email protected]/repo_owner/repo_name

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

Вот как я предпочитаю это, так как мне нравится вводить мой пароль github, прежде чем делиться с миром.

ответил David Jeske 11 AM00000070000003731 2013, 07:17:37
2

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

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

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

ответил John Berryman 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 25 Sep 2014 23:45:49 +0400 2014, 23:45:49
1

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

$ git config --global credential.helper wincred

вам просто нужно войти в систему еще раз, а затем git запомнит.

ответил William Earl Cheaqui 5 PMpTue, 05 Apr 2016 17:31:43 +030031Tuesday 2016, 17:31:43
1

использовать SSH

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

 GitHub - Clone with SSH

помощник учетных данных

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

  • Mac: https://github.com/... (git config --global credential.helper osxkeychain требуется),
  • Windows: osxkeychain helper
  • Linux и другие: git config --global credential.helper wincred

git config --global credential.helper cache

Другим методом является использование вашего пользователя /пароля в .netrc (~/.netrc в Windows), например

_netrc

OAuth

Используйте токен OAuth ( Персональный токен API ), чтобы внести изменения, например

machine github.com
login USERNAME
password PASSWORD

по теме:

ответил kenorb 20 J0000006Europe/Moscow 2016, 00:27:34
1

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

Поэтому я просто добавляю это в свой «.gitconfig»

[url "https://[email protected]"]
    insteadOf = https://github.com
ответил ViToni 5 J0000006Europe/Moscow 2016, 15:21:50
0

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

  

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

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

Просто загрузите последнюю версию и установите он.

  

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

     

Нет. Он волшебным образом работает, когда необходимы учетные данные.

ответил Jalal 7 J000000Thursday16 2016, 16:37:29

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132