Как использовать git с интеграцией gnome-keyring

Git 1.8.0 поддерживает интеграцию с gnome-keyring.

http://www.h-online.com/open/news/item/Git-1-8-0-can-access-Windows-and-GNOME-keyrings-1733879.html

После прочтения документов о помощниках credentials git: http://git-scm.com/docs/gitcredentials.html

Мне не удалось найти способ использовать эту новую функцию. Как его интегрировать? Я использую Archlinux с git, установленным из репозитория Archlinux. (git 1,8.0)

Ответы

Ответ 1

Git 1.8.0 поставляется с поддержкой gnome-keyring, но двоичный файл необходимо скомпилировать для вашей платформы.

Вот что я решил для меня в Archlinux:

$ sudo pacman -S libgnome-keyring
$ cd /usr/share/git/credential/gnome-keyring
$ make
$ git config --global credential.helper /usr/share/git/credential/gnome-keyring/git-credential-gnome-keyring
Решение

@VonC было близко, но команда git config должна указывать на исполняемый файл. Вот почему он не работал у меня.

Ответ 2

@marcosdsanchez ответ для Arch (который отвечает на оригинальный вопрос), но я нахожусь на Ubuntu. Для git> = 2.11:

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

Для мерзавца <2.11:

sudo apt-get install libgnome-keyring-dev
cd /usr/share/doc/git/contrib/credential/gnome-keyring
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

Ответ 3

Обновление Q4 2016:

  • Unix, Mac (Git 2.11 +)

    git config --global credential.helper libsecret
    

(см. "Ошибка при использовании помощника учетных данных Git с gnome-keyring" )

  • Окна:

    git config --global credential.helper manager
    

(см. "Как выйти из консоли Git Bash в Windows?": Это Git для Windows, используя последний Microsoft Git Диспетчер учетных данных для Windows)


Оригинальный ответ (2012)

Помощники по учетным записям для платформ Windows, Mac и Unix были впервые представлены в "git -credential-helper" repo, , который теперь включен в Git distro:

Этот репозиторий содержит набор Git помощников учетных данных (gitcredentials (7)), которые являются частью git (или должны быть внесены в будущем).

$ git clone git://github.com/pah/git-credential-helper.git
$ BACKEND=gnome-keyring      # or any other backend
$ cd git-credential-helper/$BACKEND
$ make
$ cp git-credential-$BACKEND /path/to/git/crendential

при сборке он будет устанавливаться в каталог /path/to/git/credential.

Чтобы использовать этот бэкэнд, вы можете добавить его в свою (глобальную) конфигурацию Git, установив

(здесь для Unix):

git config --global credential.helper /path/to/git/credential/gnome-keyring/git-credential-gnome-keyring

Примечание для Windows:

Я предполагаю, что вы можете сделать программу, запущенную в Windows, и вызвать библиотеку типа pypi keyring 0.10.
Но это фокус, и вы не используете его непосредственно из Git.

То, что вы используете, - это "помощник учетных данных" (который, в свою очередь, вызовет любой учетный API, который он хочет в Windows).

GitHub для Windows предоставляет такой помощник (как исполняемый файл, называемый... github), и может хранить ваши учетные данные на время Сессия Windows.
Запустите оболочку из этих окон "GitHub для Windows", и вы увидите, набрав "git config --system -l":

C:\Users\VonC\Documents\GitHub\test [master +2 ~0 -0 !]> git config --system -l
credential.helper=!github --credentials

Часть credential.helper=!github --credentials вызовет помощник учетных данных 'github'.

$ git config [--global] credential.helper $BACKEND

Ответ 4

Для любого из Fedora я немного отредактировал Джеймса Уорда:

sudo yum install libgnome-keyring-devel
cd /usr/share/doc/git/contrib/credential/gnome-keyring
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

Ответ 5

Просто добавьте эти две строки в ваш ~/.gitconfig файл:

[credential]
    helper = gnome-keyring

В следующий раз, когда вас попросят ввести пароль с помощью Git, введенный пароль будет сохранен в Gnome Keyring (вы можете увидеть это с помощью инструмента seahorse), и после этого вас не попросят ввести пароль.

Это предполагает, что ваша версия Git достаточно новая (например, 2.1.0), и вы находитесь под Linux Fedora, RHEL или CentOS. Для более старых версий или других ОС/дистрибутивов проверьте другие ответы.

Ответ 6

Обновление октябрь 2018

GNOME устарел libgnome-keyring и заменил его на libsecret. Коммит https://github.com/git/git/commit/87d1353a6a добавил новый помощник по учетным данным /usr/libexec/git-core/git-credential-libsecret.

git config --global credential.helper libsecret