web-dev-qa-db-ja.com

gnome-keyring統合でgitを使用する方法

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

Gitクレデンシャルヘルパーに関するドキュメントを読んだ後: http://git-scm.com/docs/gitcredentials.html

この新しい機能を使用する方法を見つけることができませんでした。どうすれば統合できますか? ArchlinuxのリポジトリからgitをインストールしたArchlinuxを使用しています。 (git 1.8.0)

122
marcosdsanchez

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コマンドは実行可能ファイルを指す必要があります。それが私のために働いていなかった理由です。

53
marcosdsanchez

@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

Git <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
181
James Ward

2016年第4四半期の更新:

  • Unix、Mac(Git 2.11以降)

    git config --global credential.helper libsecret
    

(「 gnome-keyringでGit資格情報ヘルパーを使用するとエラーが発生します 」を参照してください)

  • Windows:

    git config --global credential.helper manager
    

(「 WindowsのGit Bashコンソールでサインアウトする方法? :つまりGit for Windows最新の Microsoft Git Credential Manager for Windows )を使用する


元の回答(2012)

Windows、Mac、およびUnixプラットフォーム用のクレデンシャルヘルパーは、最初に "git-credential-helper" repoで導入され、現在はgit distro

このリポジトリには、gitcredentialsの一部である(または将来提供される予定の)Gitクレデンシャルヘルパーのセット(git(7))が含まれます。

$ 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.1 」のようなライブラリを呼び出すことができると思います。
しかし、それはバックエンドであり、Gitから直接使用することはありません。

使用しているのは「資格情報ヘルパー」です(これは Windowsで必要な資格情報API を呼び出します)。

GitHub for Windows はそのようなヘルパーを提供し(... githubと呼ばれる実行可能ファイルとして)、Windowsセッション中に資格情報を保存できます。
「GitHub for 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
24
VonC

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
11
SuperGreg

2018年10月に更新

GNOMEはlibgnome-keyringを廃止し、libsecretに置き換えました。コミット https://github.com/git/git/commit/87d1353a6a 新しい資格情報ヘルパー/ usr/libexec/git-core/git-credential-libsecretが追加されました。

git config --global credential.helper libsecret

9
vk5tu

次の2行を~/.gitconfigファイルに追加するだけです。

[credential]
    helper = gnome-keyring

次回Gitからパスワードを求められたとき、入力されたパスワードはGnome Keyringに保存され(seahorseツールでこれを見ることができます)、その後パスワードの再入力は求められません。

これは、Gitのバージョンが十分に新しく(2.1.0など)であり、 Linux Fedora、RHEL、またはCentOS。古いバージョンまたは他のOS/distrosについては、他の回答をご覧ください。

6
oliver