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と戦っているソルジャー達に幸あらんことを。