it-swarm-ru.tech

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

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

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

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

167
picardo

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

30
Benjamin Bannier

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

Это потому, что сегодня я использовал протокол 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 следует заменить соответствующим именем репозитория и владельцем этого репозитория. Имя пользователя будет вашим, если у вас есть хранилище, или имя пользователя владельца хранилища в противном случае.

212
Sergio Morstabilini

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

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

    git config -l
    

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

  2. Ваш удаленный URL будет выглядеть следующим образом: https: // {ИМЯ ПОЛЬЗОВАТЕЛЯ} @ github.com/{ИМЯ ПОЛЬЗОВАТЕЛЯ}/{REPONAME} .git

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

    git config remote.Origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    
29
Eray

Я предпочитаю использовать 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

26
stefanmaric

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

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa
6
Daenyth

Если вы используете Windows по протоколу HTTPS, попробуйте 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
Brian Burns

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

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

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

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

5
David Jeske

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

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

 GitHub - Clone with SSH

помощник по учету

В противном случае, если вам действительно нужно использовать HTTPS, чтобы кэшировать свой пароль GitHub в Git , вы должны использовать помощник по учетным данным, чтобы 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), например,.

machine github.com
login USERNAME
password PASSWORD

OAuth

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

git Push https://[email protected]/foo/bar

Связанные с:

2
kenorb

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

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

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

2
John Berryman

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

$ git config --global credential.helper wincred

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

1
William Earl Cheaqui

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

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

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

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

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

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

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

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

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

0
Jalal