LoginSignup
4
7

More than 3 years have passed since last update.

HTTPS経由時のGit認証情報入力を省略する

Posted at

https経由でアクセスするときにGit認証情報(ユーザ名とパスワード)を毎回聞かれるのが非常に面倒だったのでやり方を調べました。
社内ネットワークの制限でSSHを使用できない場合もあると思うので、その時の解決策です。

環境

ホスティングサービス:GitLab
OS : ubuntu18.04 (Virtual Box)

認証情報の保存

git credentialを使用することで認証情報を保存します。
Git のさまざまなツール - 認証情報の保存

Linuxで認証情報を保存かつ暗号化した状態で管理するにはlibsecretを使用します。

同じ用途でlibgnome-keyringもありますが、こちらは廃止予定となっています。
https://github.com/GNOME/libgnome-keyring

以下の4つのコマンドを入力した後に、GitLabにアクセスすれば認証情報が保存されます。

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の設定で認証情報を解除するには以下のコマンドを入力します。

git config --global --unset credential.helper

この状態だとlibsecretに登録されている認証情報は削除されていません。
libsecretに登録されている認証情報はseahouseを使用することで完全に削除することができます。
ubuntuではアプリケーションからパスワードと鍵を選択することで表示できます。
図1.png

ログインに登録されているGitLabにアクセスするキーを削除します。

コマンドで削除する方法は見つけられませんでした・・

補足

手動でlibsecretフォルダを削除してしまったとき

記事を書くにあたって、一度libsecretをフォルダごと削除して再インストールを試したところ再インストールしてもlibsecretフォルダが生成されない問題にハマりました。
(正しい解決方法かわからないですが・・)Githubから直接コードをコピーしてmakeすることで解決しました。
https://github.com/git/git/tree/master/contrib/credential/libsecret

/usr/share/doc/git/contrib/credential/libsecretディレクトリを作成して、その中でviコマンドを使用してコードをコピペしたファイルを生成し、makeします。

vi makefile
vi git-credential-libsecret.c
make

参考

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7