現在、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でそれらを機能させるにはどうすればよいですか?
gnome-credential-helper
は廃止されました。
代わりに、libsecretを使用してください。 Ubuntuにまだ組み込まれていない場合は、次の手順を使用します。
libsecret
と開発ライブラリを次のようにインストールできます。
Sudo apt-get install libsecret-1-0 libsecret-1-dev
次に、資格情報マネージャーを作成する必要があります
cd /usr/share/doc/git/contrib/credential/libsecret
Sudo make
最後に、gitに設定で新しく作成されたファイルを指定する必要があります。
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
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
この単純なアプローチは、git 2.17.1を使用したUbuntu 18.04.1では十分であると思われます。
git config --global credential.helper cache
次のように1時間(= 3600秒)のタイムアウトを指定できます。
git config --global credential.helper 'cache --timeout=3600'
ファインマニュアル でさらに読みます。