40

SSL を使用する Git サーバーに接続する際に、資格情報を安全に保存する方法を探していました。@james-wardによるこの提案に出くわしました(私が行った編集のみが、Gitの「グローバル」構成ではなく「システム」構成を更新したことでした(https://stackoverflow.com/a/14528360/6195194

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

その後、実行できます

git clone https://ipaddress/git/repo.git

資格情報ヘルパーは資格情報を保存しますが、次を実行すると:

sudo git clone https://ipaddress/git/repo.git testfolder

次のエラーが表示されます

** (process:3713): CRITICAL **: Error communicating with gnome-keyring-daemon

クローンを作成する必要があるディレクトリで必要になる場合があるため、sudo git clone を実行する必要がある場合があります。どんな助けでも大歓迎です。

私が使用しているバージョン: - git バージョン 1.9.1 - Ubuntu Server 14.0.4

前もって感謝します!-リチャード O.

4

3 に答える 3

111

sudo の使用に加えて、2016 年にlibgnome-keyringは GNOME に固有であり、現在は非推奨になっていることに注意してください ( 2014 年 1 月以降、実際には)。

Git 2.11 以降 (2016 年第 4 四半期) には、libsecret.

Mantas Mikulėnas ( )によるコミット 87d1353 (2016 年 10 月 9 日)を参照してください。( 2016 年 10 月 26 日コミット bfe800cJunio C Hamanoによってマージされました)grawity
gitster

「 libsecret」を介して XDG シークレット サービス API の実装と対話する新しい資格情報ヘルパーが に追加されましたcontrib/credential/

libsecretXDG Secret Service API の他の実装をサポートできるものを使用します。

  1. libsecretおよび開発ライブラリを次の方法でインストールできます。

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

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

    cd /usr/share/doc/git/contrib/credential/libsecret(自動的にインストールされない場合は、 sourceからcredential/libsecretフォルダーをコピーします)

    sudo make

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

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


コメントでmati865が指摘したように:

Arch や Fedora などの一部のディストリビューションでは、バイナリとソースの両方でヘルパーを提供していることに注意してください。

  • Arch の Libsecret バイナリ: /usr/lib/git-core/git-credential-libsecret、および
  • Fedora の Libsecret バイナリ: /usr/libexec/git-core/git-credential-libsecret.

注: @rugkがコメントに追加しているように、Fedora および Git v2.25.2-1 以降の場合、メインの git パッケージから分割されているため、そのバイナリで追加のパッケージをインストールする必要があります。

dnf install git-credential-libsecret
于 2016-10-28T19:37:07.717 に答える
3

を使用sudoすると、コマンドが root として実行されます。システム管理者がいる場合は、システム管理者にコマンドを実行するように依頼するようなものです。rootユーザーは、開発に関連することを意図していないため、root として使用することを意図していません。git

別のユーザー (root またはその他) としてコマンドを実行すると、この別のユーザーは通常のユーザーと正常に通信できないことが予想されます (特に、ここで gnome-keyring-daemon が見つかりません)。

ですから、答えは「そうしないでください」です。特定のディレクトリに複製する必要がある場合は、CodeWizard の回答で提案されているように、そのディレクトリに対するアクセス許可を自分に付与してください。実際、権限のないディレクトリにクローンを作成する必要がある場合は、何か間違ったことをしていないかどうか自問してください: 原則として、これは起こらないはずです (私の推測では: あなたsudoは過去に既に使いすぎていて、これはあちこちに um-writable ディレクトリがあるのはそのためです)。

于 2016-04-13T06:15:22.567 に答える