QNAP に Gitea 入れて、MacBook Pro で色々テストしているときに Sorcetree で毎回パスワードを聞かれるのを止められなくてめんどくさかったのを止めるまでのメモ。
現象
Sourcetree で push するときに毎回パスワードを聞かれる。
回避策
回避策としては2種類。
キャッシュを使う方法とキーチェーンを使う方法。
キャッシュは設定した時間内なら、再度パスワードを入力する必要がなくなるけど、基本的に都度パスワードを聞かれるので macOS を使っているならキーチェーンで対応するのがセオリーかなと。
設定方法
$ git config --global credential.helper <設定値>
設定値に osxkeychain
もしくは cache
を指定する。
キーチェーンを使う
$ git config --global credential.helper osxkeychain
設定して最初に push しようとしたタイミングでキーチェーンへのアクセスを聞かれるので、「常に許可」を選択すれば OK。
以降は、キーチェーンに保存された情報を使うので聞かれなくなる。
キャッシュを使う
$ git config --global credential.helper cache
設定後、push の際にパスワードの入力を求められるが、一定時間はパスワードの入力を回避可能。
キャッシュの保持時間はデフォルトで 900秒らしく、保持時間を伸ばす場合には下記のような感じで伸ばす。
$ git config --global credential.helper 'cache --timeout=3600'
が、未確認なのでよく分からん。
設定の確認
$ git config --global credential.helper
例えば、cache
を設定している場合には。
$ git config --global credential.helper
cache
のような感じで設定値が戻ってくる。
設定の解除
$ git config --global --unset credential.helper
これで設定が消える。
注意点
なぜか設定の一覧を見ると、何も設定していなくてもosxkeychain
が設定されているように見える。
$ git config --list
credential.helper=osxkeychain
・
・
・
実際、--global
とか --local
をつけずに credential.helper
の設定値を見ると、 osxkeychain
が返ってくる。
$ git config credential.helper
osxkeychain
が、 --global
とか --local
とか --system
をつけても osxkeychain
は返ってこない。
どこで設定されてるのか分からないけど、結果としてこの設定を入れていても実際には毎回パスワードを聞かれるので、 --global
とかで設定しておく。