LoginSignup
21
17

More than 5 years have passed since last update.

Gitでhttps接続するときのパスワードを保存したい

Last updated at Posted at 2016-10-04

Gitでリモートに接続する際に毎回アカウントを要求されてた

GithubでもGitlabでもBitbucketでも何でもいいですが、
proxy環境下でhttps接続が必須で、cloneでもpushでもpullでもとにかく毎回要求されててツライ...

sshで公開鍵認証できればそちら使いますけど、社内proxyでsshが使えない、gitプロトコルも使えないという大きな壁があって我慢していましたが、いい加減殺る気出していくつかの方法を検討してみました。

.netrc

ホームディレクトリの.netrcにユーザー名とパスワード、プロトコルを記入することで、remoteへ接続する際に参照してくれます。ただしホームディレクトリ内に平文でファイル置くのでセキュリティ的にヤバそう。

vi ~/.netrc

machine github.com
login username
password password
protocol https

credential.helper

利用可能な管理方法がいくつかありますが、検討したのは下記。

store

.netrcみたいにファイルに保存します。ただし、パスワードが平文...

git config --global credential.helper store

これで
~/.git-credentialsに保存されています。平文で。

cache

常駐プロセスに記憶させます。

git config --global credential.helper cache

デフォルトでは900秒。変更するにはtimeoutオプション。(例:1時間)

git config --global credential.helper store --timeout=3600

これだと1時間後にはまた要求されるので微妙。

osxkeychain

OSXの場合、保存先がキーチェーンに保存されます。やったーこれは便利!

git config --global credential.helper osxkeychain

初回パスワード入力時に保存されるので、キーチェーンを消さない限り以後入力不要。
今回こちらを採用しました。

これで毎度pull/pushするごとにアカウント要求されるつらみが解消されるのではないでしょうか。

社内proxyと戦っているソルジャー達に幸あらんことを。

21
17
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
21
17