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 version 1.9.1-Ubuntu Server 14.0.4
前もって感謝します! -リチャード・O.
クローンを作成する必要があるディレクトリで必要になることがあるため、Sudo git cloneを実行する必要がある場合があります。助けていただければ幸いです
リポジトリのクローンを作成しようとするフォルダーはルートによって作成されたため、ルート(Sudo
)でない限り、その下にフォルダーを作成または作成する権限はありません。権限を設定します(chmod
またはchown
)を選択すると、フォルダーにクローンを作成できます。
chmod 755 /path
Sudoの使用に加えて、2016年にlibgnome-keyring
はGNOMEに固有であり、現在では非推奨になっていることに注意してください( January 2014、実際 )。
Git 2.11+(2016年第4四半期)には、libsecret
を使用した新しい資格情報ヘルパーが含まれます。
commit 87d135 (2016年10月9日)by MantasMikulėnas(grawity
) を参照してください。
( J・C浜野-gitster
- in commit bfe800c 、2016年10月26日)
「libsecret」を介してXDG Secret Service APIの実装と対話する新しい資格情報ヘルパーが
contrib/credential/
に追加されました。xDG Secret Service APIの他の実装をサポートできる
libsecret
を使用します。
libsecret
と開発ライブラリを次のようにインストールできます:
Sudo apt-get install libsecret-1-0 libsecret-1-dev
次に、資格情報マネージャーを作成する必要があります
cd /usr/share/doc/git/contrib/credential/libsecret
(credential/libsecretフォルダーを source からコピーします(自動的にインストールされない場合))
Sudo make
最後に、gitに設定で新しく作成されたファイルをポイントする必要があります。
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
ArchやFedoraなどの一部のディストリビューションでは、バイナリとソースの両方として利用可能なヘルパーが提供されていることに注意してください。
- ArchのLibsecretバイナリ:
/usr/lib/git-core/git-credential-libsecret
、および- FedoraのLibsecretバイナリ:
/usr/libexec/git-core/git-credential-libsecret
。
Sudo
を使用すると、コマンドがルートとして実行されます。システム管理者がいる場合は、システム管理者にコマンドを実行するように依頼するようなものです。 root
ユーザーはnot開発関連のことを行うことを意味するため、git
はnot rootとして使用することを意味します。
別のユーザー(rootまたは他のユーザー)としてコマンドを実行すると、この他のユーザーは通常のユーザーと正常に通信できないことが予想されます(特に、ここでgnome-keyring-daemonが見つかりません)。
したがって、答えは「それをしないでください」です。特定のディレクトリで本当にクローンを作成する必要がある場合は、CodeWizardの回答で提案されているように、そのディレクトリに対するアクセス許可を自分に与えます。実際、権限のないディレクトリでクローンを作成する必要がある場合は、何か間違ったことをしているかどうかを自問してください:原則として、これは起こらないはずです(私の推測では、すでにSudo
も使用しています)過去に多く、これがあちこちにum-writableディレクトリがある理由です。