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

Итак, как я могу сохранить свои учетные данные в Git?

Ответы (26)

Внимание: Этот метод сохраняет учетные данные в виде открытого текста на диске вашего ПК. Все пользователи вашего компьютера могут получить к нему доступ, например вредоносные модули NPM.

Выполнить

git config --global credential.helper store

, затем

git pull

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

Если вы хотите изменить пароль позже

git pull

Ошибка, так как пароль неверен, затем git удаляет нарушившего пользователя + пароль из файла ~ / .git-credentials, поэтому перезапустите

git pull

, чтобы указать новый пароль, чтобы он работал как раньше.

Вы можете использовать git config, чтобы включить хранилище учетных данных в Git.

git config --global credential.helper store

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

Впоследствии для последующей связи с удаленным репозиторием вам не нужно указывать имя пользователя и пароль.

Формат хранения - файл .git-credentials, хранящийся в виде открытого текста.

Также вы можете использовать другие помощники для git config credential.helper, а именно кеш памяти:

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

, который принимает необязательный параметр тайм-аут, определяющий, как долго учетные данные будут храниться в памяти. Используя помощник, учетные данные никогда не коснутся диска и будут удалены по истечении заданного времени ожидания. Значение по умолчанию: 900 секунд (15 минут).


Предупреждение: если вы используете этот метод, пароли ваших учетных записей Git будут сохранены в формате plaintext, в глобальном файле .gitconfig, например, в Linux это будет / home / [имя пользователя] /. gitconfig.

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

Вы можете отредактировать файл ~ / .gitconfig на сохранить ваши учетные данные:

sudo nano ~/.gitconfig

Который уже должен иметь

[user]
        email = your@email.com
        user = gitUSER

Вы должны добавить в конец этого файла следующее.

[credential]
        helper = store

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

Используйте эту опцию только на своем персональном компьютере.

Потом при дергании | клон | введите свой пароль Git, как правило, пароль будет сохранен в ~ / .git-credentials в формате

https://gituser:gitpassword@domain.xxx

Где DOMAIN.XXX может быть github.com, bitbucket.org или другими

См. документацию.

Перезагрузите терминал.

Recommended and secure method: SSH

Create an SSH GitHub key. Go to github.comSettingsSSH and GPG keysNew SSH Key. Now save your private key to your computer.

Then, if the private key is saved as id_rsa in the ~/.ssh/ directory, we add it for authentication as such:

ssh-add -K ~/.ssh/id_rsa

A more secure method: Caching

We can use git-credential-cache to cache our username and password for a time period. Simply enter the following in your CLI (terminal or command prompt):

git config --global credential.helper cache

You can also set the timeout period (in seconds) as such:

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

An even less secure method

Git-credential-store may also be used, but it saves passwords in a plain text file on your disk as such:

git config credential.helper store

Для глобальных настроек откройте терминал (откуда угодно), запустите следующее:

  git config --global user.name "your username"
  git config --global user.password "your password"

Таким образом, любой локальный репозиторий Git, который у вас есть на вашем компьютере, будет использовать эту информацию.

Вы можете индивидуально настроить для каждого репозитория, выполнив:

  • открыть терминал в папке репозитория.

  • запустите следующее:

     git config user.name "ваше имя пользователя"
      git config user.password "ваш пароль"
    

Это влияет только на эту папку (поскольку ваша конфигурация локальная).

Apart from editing the ~/.gitconfig file, that you can do if you call from the command line:

git config --local --edit

or

git config --global --edit

enter image description here Editing git config file in default text editor

You can also use the command line to edit the git config file directly (without the editor)

git config --local user.name 'your username'
git config --local user.password 'your password'

or

git config --global user.name 'your username'
git config --global user.password 'your password'

Note to always use single quotes. Your username and password may use some characters that would break your password if you use double quotes.

--local or --global means configuration parameters are saved for the project or for the OS user.

Перебрав десятки сообщений о переполнении стека, блогов и т. Д., Я попробовал каждый метод, и это то, что я придумал. Он охватывает все.

Шпаргалка по учетным данным и приватным пакетам vanilla DevOps Git

Это все способы и инструменты, с помощью которых вы можете безопасно аутентифицировать Git для клонирования репозитория без интерактивного запроса пароля.

  • Открытые ключи SSH
    • SSH_ASKPASS
  • токены доступа API
    • GIT_ASKPASS
    • .gitconfig вместо
    • .gitconfig [учетные данные]
    • .git-учетные данные
    • .netrc
  • Частные пакеты (бесплатно)
  • Node.js / npm package.json
  • Python / pip / яйца requirements.txt
  • Рубин драгоценные камни Gemfile
  • Go go.mod

Серебряная пуля

Want Just Works ™? Это волшебная серебряная пуля.

Получите свой токен доступа (см. Раздел в шпаргалке, если вам нужны инструкции GitHub или Gitea) и установите его в переменной среды (как для локальной разработки, так и для развертывания):

MY_GIT_TOKEN = xxxxxxxxxxxxxxxx

Для GitHub скопируйте и запустите эти строки дословно:

git config --global url. "https://api:$MY_GIT_TOKEN@github.com/". Вместо "https://github.com/"
git config --global url. "https://ssh:$MY_GIT_TOKEN@github.com/". вместо "ssh: //git@github.com/"
git config --global url. "https://git:$MY_GIT_TOKEN@github.com/". Вместо "git@github.com:"

Поздравляю. Теперь любой автоматический инструмент для клонирования репозиториев Git не будет заблокирован запросом пароля, независимо от того, используется ли HTTPS или какой-либо стиль URL-адреса SSH.

Не используется GitHub?

Для других платформ (Gitea, GitHub и Bitbucket) просто измените URL-адрес. Не меняйте имена пользователей (хотя и произвольные, они необходимы для отдельных записей конфигурации).

Совместимость

Это работает локально в macOS, Linux, Windows (в Bash), Docker, CircleCI, Heroku, Akkerisи т. Д.

Подробнее

См. Раздел ".gitconfig вместо" в шпаргалке.

Безопасность

См. Раздел «Безопасность» шпаргалки.

Just use

git config --global credential.helper store

And do the git pull. It will ask for a username and password. From now on it will not provide any prompt for username and password. It will store the details.

Прочитав ответы полностью и поэкспериментировав с большинством ответов на этот вопрос, я в конце концов нашел процедуру, которая мне подходит. Я хочу поделиться им на случай, если кому-то придется иметь дело со сложным вариантом использования, но он все еще не хочет проходить все ответы и gitcredentials, gitcredentials-store и т. Д. Man страниц, как и я.

Найдите ниже процедуру, которую я предлагаю IF вам (как и мне) приходится иметь дело с несколькими репозиториями от нескольких поставщиков (GitLab, GitHub, Bitbucket и т. Д.), Используя несколько различных комбинаций имени пользователя и пароля. Если вместо этого у вас есть только одна учетная запись для работы, вам может быть лучше использовать git config --global credential.helper store или git config --global user.name "ваше имя пользователя " и т. Д. Решения, которые были очень хорошо объяснены в предыдущих ответах.

Мое решение:

  1. Отключить глобальный помощник по учетным данным, на случай, если некоторые предыдущие эксперименты помешают:)

    git config --global --unset credentials.helper
    
  2. Перейдите в корневой каталог вашего репо и отключите локальный помощник по учетным данным (при необходимости)

    cd / путь / к / my / repo
    git config --unset credential.helper`
    
  3. Создайте файл для хранения учетных данных вашего репо в

    git config credential.helper 'store --file ~ / .git_repo_credentials'
    

    Примечание: эта команда создает новый файл с именем ".git_repo_credentials" в вашем домашнем каталоге, в котором Git хранит ваши учетные данные. Если вы не укажете имя файла, Git будет использовать значение по умолчанию «.git_credentials». В этом случае достаточно просто ввести следующую команду:

    git config credential.helper store
    
  4. укажите ваше имя пользователя

    учетные данные git config. *. Имя пользователя my_user_name
    

    Примечание: использование «*» обычно нормально, если ваши репозитории принадлежат одному и тому же провайдеру (например, GitLab). Если вместо этого ваши репозитории размещены у разных провайдеров, я предлагаю явно установить ссылку на провайдера для каждого репозитория, как в следующем примере (для GitLab):

    учетные данные git config.https://gitlab.com.username my_user_name
    

На этом этапе, если вы введете команду, требующую ваших учетных данных (например, git pull), вам будет предложено ввести пароль, соответствующий «my_user_name». Это требуется только один раз, потому что git сохраняет учетные данные в ".git_repo_credentials" и автоматически использует те же данные при последующих доступах.

Думаю, безопаснее кешировать учетные данные, а не хранить вечно:

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

Теперь вы можете ввести свое имя пользователя и пароль (git pull или ...) и продолжать использовать Git в течение следующих трех часов.

Красиво и безопасно.

Единица измерения тайм-аута - секунды (в примере - три часа).

Для пользователей Windows: посмотрите файл .gitconfig и проверьте, что было настроено для помощника по учетным данным. Если у вас есть следующие ...

[учетные данные "helperselector"] выбрано = wincred

учетные данные вы найдете в Windows Credential Manager.

Enter image description here

Там вы можете редактировать учетные данные.

Примечание: Wincred устарел, см. ...

https://github.com/Microsoft/Git-Credential-Manager-for-Windows#notice-this-project-is-no-more-being-supported-warning

В качестве альтернативы вы можете перенастроить Git для использования встроенного диспетчера учетных данных Git ...

git config --global credential.helper manager
git config --global user.name "ваше имя пользователя"
git config --global user.password "ваш пароль"

Проверить

git config --list

Сохранить имя пользователя и пароль глобально:

git config --global user.name "fname lname"
git config --global user.email "example@gmail.com"
git config --global user.password "secret"

Получить конкретную настройку,

git config --global --get user.name
git config --global --get user.email
git config --global --get user.password

Получение всех настроек Git:

git config --list --show-origin

В этом случае вам понадобится помощник по учетным данным git, чтобы сообщить Git, чтобы он запомнил ваш пароль и имя пользователя GitHub, используя следующую командную строку:

git config --global credential.helper wincred

И если вы используете репозиторий с помощью ключа SSH, вам понадобится ключ SSH для аутентификации.

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

  1. Установить официальный cli Github. Например. для Mac: brew install gh.
  2. введите gh auth login в своем терминале, затем следуйте подсказкам.

Если клиент git не заботится о безопасности, отредактируйте URL-адрес следующим образом:

git remote set-url origin https://${access_token}@github.com/${someone}/${somerepo}.git

Я лично не одобряю git config с global доменом, так как это испортит настройки моего бизнеса и сообщества.

Для пользователей Windows подойдет такой способ:

Примечание: если вы включили двухфакторную аутентификацию для GitHub, отключите ее на время

  • Шаг 1

    Перейдите в Панель управленияУчетные записи пользователейДиспетчер учетных данныхУчетные данные Windows

  • Шаг 2

    Перейдите в раздел Общие учетные данныеДобавьте общие учетные данные

    Enter image description here

  • Шаг 3 - Заполните поля

    Интернет или сетевой адрес: git.https://github.com

    Имя пользователя: ваше имя пользователя GitHub

    Пароль: ваше имя пользователя GitHub

    Enter image description here

    А теперь нажмите ОК. Это сохранит пароль и имя пользователя вашей учетной записи GitHub на вашем локальном компьютере

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

Если вы используете Mac, аутентификация клиента SSH интегрирована в связку ключей macOS. После того, как вы создали SSH-ключ, введите в свой терминал:

ssh-add -K ~/.ssh/id_rsa

Это добавит закрытый ключ SSH в связку ключей macOS. Клиент Git будет использовать SSH при подключении к удаленному серверу. Пока вы зарегистрировали свой открытый ключ ssh на сервере, все будет в порядке.

Проверьте официальную документацию Git:

Если вы используете транспорт SSH для подключения к пультам дистанционного управления, возможно чтобы у вас был ключ без ключевой фразы, что позволяет безопасно передавать данные без ввода имени пользователя и пароля. Однако это невозможно с протоколами HTTP - каждый для подключения требуется имя пользователя и пароль. Это становится еще труднее для системы с двухфакторной аутентификацией, где токен, который вы используете для пароль генерируется случайным образом и не произносится.

К счастью, в Git есть система учетных данных, которая может в этом помочь. Git В поле есть несколько вариантов:

  • По умолчанию кеширование не выполняется. Каждое соединение будет подсказывать вам для вашего логина и пароля.

  • В режиме «кэш» учетные данные хранятся в памяти в течение определенного периода времени. время. Ни один из паролей никогда не сохраняется на диске, и они удаляется из кеша через 15 минут.

  • В режиме «store» учетные данные сохраняются в текстовом файле на диске, и они никогда не истекают. Это означает, что пока вы не измените свой пароль для хоста Git вам никогда не придется вводить свои учетные данные снова. Обратной стороной этого подхода является то, что ваши пароли хранятся в виде открытого текста в простом файле в вашем домашнем каталоге.

  • Если вы используете Mac, Git имеет режим «osxkeychain», который кэширует учетные данные в защищенной связке ключей, которая прикреплена к вашему системная учетная запись. Этот метод хранит учетные данные на диске, и они никогда не истекают, но они зашифрованы в той же системе, в которой хранятся Сертификаты HTTPS и автозаполнение Safari.

  • Если вы используете Windows, вы можете установить помощник под названием «Git Диспетчер учетных данных для Windows ». Это похоже на «osxkeychain» помощник, описанный выше, но использует хранилище учетных данных Windows для контролировать конфиденциальную информацию. Его можно найти на https://github.com/Microsoft/Git-Credential-Manager-for-Windows.

Вы можете выбрать один из этих методов, установив конфигурацию Git значение:

git config --global credential.helper cache

git config --global credential.helper store

От 7.14 Инструменты Git - хранилище учетных данных

Из комментария от rofrolв Linux Ubuntu, из из этого ответа, вот как это сделать в Ubuntu:

sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

Некоторые другие дистрибутивы предоставляют двоичный файл, поэтому вам не нужно его собирать.

В OS X он обычно "собран" с добавленным модулем по умолчанию "osxkeychain", так что вы получаете его бесплатно. Как встроенная в OS X, так и версия homebrew имеют его по умолчанию.

Вы можете использовать git-credential-store для хранения ваших паролей в незашифрованном виде на диске, защищенном только разрешениями файловой системы.

Пример

git config credential.helper store
git push http://example.com/repo.git

Username: 
Password: 

[Several days later]

git push http://example.com/repo.git

[Your credentials are used automatically]

Вы можете проверить учетные данные, хранящиеся в файле ~ / .git-credentials.

Для получения дополнительной информации посетите git-credential-store - Помощник для хранения учетных данных на диске.

Сохранить имя пользователя и пароль в .git-credentials

.git-credentials - это место, где ваше имя пользователя и пароль (токен доступа) хранятся при запуске git config --global credential.helper store, что предлагают другие ответы , а затем введите свое имя пользователя и пароль или токен доступа:

https://${username_or_access_token}:${password_or_access_token}@github.com

Итак, чтобы сохранить логин и пароль (токен доступа):

git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials

Это очень полезно для роботов GitHub, например для решения Цепочка автоматических сборок в одном репозитории Docker Hub, имея правила для другой ветки, а затем запускать ее, нажимая на нее в хуке post_push в Docker Hub .

Пример этого можно увидеть здесь в Stack Overflow.

Включите помощник по учетным данным, чтобы Git какое-то время сохранял ваш пароль в памяти:

В Терминале введите следующее:

# Set Git to use the credential memory cache
git config --global credential.helper cache

По умолчанию Git кэширует ваш пароль на 15 минут.

Чтобы изменить таймаут кеширования паролей по умолчанию, введите следующее:

# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'

Из Справка GitHub.

Если вы используете Git Credential Manager в Windows...

git config -l должен показать:

credential.helper=manager

Однако, если у вас не появляется запрос на ввод учетных данных, выполните следующие действия:

  1. Открыть Панель управления из меню Пуск
  2. Выберите Учетные записи пользователей
  3. Выберите Управление учетными данными в левом меню
  4. Удалить все учетные данные, относящиеся к Git или GitHub

Также убедитесь, что у вас есть not set HTTP_PROXY, HTTPS_PROXY, NO_PROXY переменные среды, если у вас есть прокси и ваш Git-сервер включен внутренняя сеть.

Вы также можете протестировать Git fetch / push / pull, используя git-gui, который ссылается на двоичные файлы диспетчера учетных данных в C: \ Users \ \ AppData \ Local \ Programs \ Git \ mingw64 \ libexec \ git-core

Ни один из предыдущих ответов не помог мне. Я получал следующее каждый раз, когда хотел получить или вытащить:

Введите кодовую фразу для ключа '/Users/myusername/.ssh/id_rsa' :


Для Mac

Мне удалось запретить ему запрашивать мою кодовую фразу:

  1. Откройте конфигурацию, запустив: vi ~ / .ssh / config
  2. Добавлено следующее: UseKeychain да
  3. Сохранено и выйти: нажмите Esc, а затем введите : wq!

Для Windows

Мне удалось заставить его работать, используя информацию из этого сообщения Stack Exchange: Как избежать запроса пароля каждый раз, когда я нажимаю на Bitbucket

Просто введите свои учетные данные в URL-адрес, например:

https://Username`**: **` Пароль` ** @ ** `github.com / myRepoDir / myRepo.git`

Вы можете хранить вот так:

git remote добавить myrepo https://Userna...

... пример для используйте it:

git push myrepo master`

Теперь это Список псевдонимов URL:

git удаленный -v

... и что команда на удаление одного из них:

git удаленный rm myrepo

2022 WebDevInsider