web-dev-qa-db-ja.com

gnome-keyringとhttp(s)リポジトリでgitを使用する正しい方法は何ですか?

現在、http_sリポジトリにgit pullまたはgit Pushするたびに、次のものが取得されます。

$ git pull
Username for 'https://gitrepos.reposdomain.com': [email protected]
Password for 'https://[email protected]@gitrepos.reposdomain.com': 

これはまれにしか使用できませんが、すぐに非常に迷惑になり始めます。 残念ながら、この場合はsshへの切り替えはオプションではありません。

以前のバージョンのgitは資格情報「ストア」と「キャッシュ」を提供しましたが、パスワードがプレーンテキストで保存されていたため、これは推奨されませんでした。

しかし

gitの新しいバージョンは、明らかにgnome-keyringにgitクレデンシャルを格納しますが、正しく設定する必要があります。

私はこれを機能させるためにSOに関する他の(非Ubuntu)回答に従ってみました(つまり this one )が、ユーザー名とパスワードのプロンプトがまだ表示されています。

http(s)リポジトリのgitクレデンシャルを保存するための正しい最も安全な方法は何ですか?また、Ubuntuでそれらを機能させるにはどうすればよいですか?

42
tudor

gnome-credential-helperは廃止されました。

代わりに、libsecretを使用してください。 Ubuntuにまだ組み込まれていない場合は、次の手順を使用します。

  1. libsecretと開発ライブラリを次のようにインストールできます。

    Sudo apt-get install libsecret-1-0 libsecret-1-dev

  2. 次に、資格情報マネージャーを作成する必要があります

    cd /usr/share/doc/git/contrib/credential/libsecret

    Sudo make

  3. 最後に、gitに設定で新しく作成されたファイルを指定する必要があります。

    git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

https://stackoverflow.com/a/40312117/2017781 の詳細

43
eddygeek

Gnome Keyringでgit credential helper をセットアップする必要があります。

Gnome Keyring develをインストールしてコンパイルします。

Sudo apt-get install libgnome-keyring-dev
Sudo make --directory=/usr/share/doc/git/contrib/credential/gnome-keyring

そして、資格情報をセットアップします。

git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring
44
user98829

この単純なアプローチは、git 2.17.1を使用したUbuntu 18.04.1では十分であると思われます。

git config --global credential.helper cache

次のように1時間(= 3600秒)のタイムアウトを指定できます。

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

ファインマニュアル でさらに読みます。

2