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


129

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)

回答:


193

@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

9
私は最初これをするのをためらっていましたが、私は最終的にそれをしました、そしてそれは完全に機能します。以下のようgitcredentialsのためのドキュメントは言う、あなたもやりたいかもしれないgit help -a | grep credential-し、あなたが他のヘルパーがインストールされているかどうかを確認します。デフォルトで提供されるものは、credential-cache(パスワードを入力してしばらくの間、デフォルトで15分保持する)、credential-store(デフォルトでは、パスワードをプレーンテキストでディスク上の暗号化されていないファイルに保存~/.git-credentialsする)です。
ShreevatsaR

51
これを手動でコンパイルする必要があり、デフォルトではパッケージから使用できない理由を誰かが説明できますか?
lanoxx 14

4
Ubuntu 14.04 LTSで働いた!
Eugene Kulabuhov

4
chmod 0755 git-credential-gnome-keyringroot以外のユーザーに実行権限を追加する必要がありました
Lari Hotari

8
Ubuntu 16.04 LTS
でも引き続き

54

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


私はあなたの結論を反映するために私の答えを再フォーマットしました。私はそれをビルドし(私のgit 1.8ディストリビューションではデフォルトではビルドされませんでした)、今朝テストしました。それは動作します。
VonC、

1
取得しているPackage gnome-keyring-1 was not found in the pkg-config search path.場合は、gnome-keyringの開発ライブラリーがありません。Ubuntuでは、これらはで利用できますapt-get install libgnome-keyring-dev。また、git contribリポジトリをgithub.com/git/git/tree/master/contribから手動でダウンロードし、/ usr / share / git-core /に配置する必要がありました。これらのファイルは、少なくとも公式のgit-core ubuntu ppaを使用すると、デフォルトのgitインストールに含まれなくなりました。
Johann

1
これgit-credential-gnomekeyringは、aurパッケージがなくなった理由をかなりよく説明しています。AURにはそのような情報がないので残念です。
ryenus 2013

/usr/share/Ubuntuでは、gitwebとgit-coreだけにgitフォルダーがありません。しかし、私はGit 1.7.9を使用しています。それが理由でしょうか...?
temporary_user_name

1
2017年のArchでは、インストールするだけlibgnome-keyringで十分です(少なくともgnomeを使用している場合)。
ald.li 2017年

25

2016年第4四半期の更新:

  • Unix、Mac(Git 2.11以降)

    git config --global credential.helper libsecret
    

(「Gitクレデンシャルヘルパーを使用した場合のエラーgnome-keyring」を参照)

  • ウィンドウズ:

    git config --global credential.helper manager
    

(「WindowsのGit Bashコンソールでサインアウトする方法」:Windowsの最新のMicrosoft Git Credential Managerを使用するGit for Windowsを参照してください)


元の回答(2012)

Windows、MacおよびUnixプラットフォーム用の資格情報ヘルパーは、最初に"git-credential-helper"リポジトリに導入され、現在は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から直接使用することはありません。

使用しているのは「資格情報ヘルパー」です(これにより、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

私が探しているものではありません。答えは* nixのみです。
marcosdsanchez 2012年

@marcosdsanchezわかりました。Gitを使用するUnixでのgnome-keyringの設定と使用法を含めるように回答を編集しました。
VonC、2012年

私はすでにそこにあるgitの1.8.0機能を使いたいです。サードパーティのコードではありません。ありがとう。
marcosdsanchez 2012年

@marcosdsanchez次に、github.com / git / git / tree / master / contrib / credential / gnome-keyring(gitにパッケージされている)をコンパイルする必要があります。コンパイルしたら、私の答えに示されているようにインストールして使用します。
VonC、2012年

バイナリが組み込まれていないと思いますか?
marcosdsanchez 2012年

15

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


2
おそらく、これは、ここでのgnome-keyringベースの回答に対するコメントになるはずです。
Murmel

同意し、それにgnome-keyring基づいて回答を編集してください。オプション全体を除外するだけかもしれません。Ubuntu 19.10では、これはまったく機能しませんでした。
マリオ

11

Fedoraの誰でも、James Wardの回答を少し編集しました:

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

2
私は混乱しています、これはすでにgitパッケージに含まれていませんか?このファイルは、fc19パッケージ内のgit-1.8.3.1-1.fc19.x86_64内では何ですか。ここにこのファイルがあります:/usr/libexec/git-core/git-credential-gnome-keyring
slm '16年

10
Fedoraの21、gitの2.1.0では、あなたは、単に行うことができます:git config --global credential.helper gnome-keyring
RedPoppy

7

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

[credential]
    helper = gnome-keyring

次回Gitからパスワードを求められたときに、入力したパスワードはGnomeキーリングに保存されます(これはseahorseツールで確認できます)。その後、再度パスワードを求められることはありません。

これは、Gitのバージョンが十分に新しく(2.1.0など)、Linux Fedora、RHEL、またはCentOSを使用していることを前提としています。古いバージョンまたは他のOS / distrosについては、他の回答を確認してください。


6
Ubuntu 16.04の場合:git: 'credential-gnome-keyring' is not a git command.
2017年

@サイボット:おっと、あなたは正しい。Fedora / RHELがこれを提供しているように見えますが、Ubuntuは提供していません。したがって、James Wardによる回答(stackoverflow.com/a/14528360/2148773)は、その場合により優れています。
オリバー2017年

2

一部のディストリビューションでは、この統合がインストールパッケージとして付属しており、コンパイルは必要ありません。GNOMEのバージョンに応じて、次のようなパッケージのいずれかgnome-keyringまたはlibsecretバージョンをインストールする必要がありますgit-credential-gnome-keyring(OpenSUSE Leap 42.3)の。

ただし、これだけではGitとGNOMEキーリングの統合は自動的には有効になりません。この方法で資格情報を保存するようにGitを構成する必要があります。

git config --global credential.helper gnome-keyring # If you installed git-credential-gnome-keyring
git config --global credential.helper libsecret     # If you installed git-credential-libsecret

Ubuntu 19.10では、このgnome-keyringオプションはこれ以上機能しませんが、James Wardの指示を使用することはlibsecret依然として適切に機能します。しかし、私はgnome-keyringここで与えられた使用の推奨に混乱しました:github.com/timhughes/git-credential-libsecret
Mario

libsecret(または何find /usr -iname git-credential-libsecretが与えられるか)は、Gentoo Linuxの正しいオプションです。dev-vcs/gitで出現する必要があることに注意してくださいUSE=gnome-keyring
sphakka

1

Fedoraではインストールする必要があります

$ sudo dnf install git-credential-libsecret

資格情報ヘルパーを使用するようgit構成を編集します。

[credential]
    helper = /usr/libexec/git-core/git-credential-libsecret

FYI libsecretパッケージは、最近、分割表示されてい@rugkからの投稿を。このため、ユーザーはこのパッケージを再インストールする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.