背景
VimのプラグインでたまにAPI Tokenを必要とするのがあります。いちいちそのプラグインを使うたびにTokenをパスワードマネージャーからコピペするなんて、面倒くさすぎる!しかもdotfileにsecretsをそのまま書き込んだらどこにもアップロードできなくなります。ググったら良さげな方法が見つかったのでシェアしておきます。また他にいい方法を知ってる人がいたらコメお願いします。
KeychainにSecretsを追加
まずはコマンドラインからKeychainに必要なSecretsを追加しましょう。(自分は試してないですが多分GUIからでもできると思います)
security add-generic-password -a "$USER" -s 'Qiita Api Token' -w '321hogehoge123'
-s
でSecretの名前を決めます。これはのちに必要になるのでメモっておきましょう。-a
のargumentでどのアカウントに追加するかを指定できます。そして-w
が実際のToken(か何かしらのString)になります。
Secretsを環境変数に定義する
そしたらどこでも使えるように、自分の使っているshell(zsh, bash, fish...etc)のenvironment variableにexportしましょう。自分はZSHを使っていたので、このようにしました。
export QIITA_API_TOKEN=$(security find-generic-password -s"Qiita Api Token -w")
find-generic-password
のコマンドは-s
でSecretの名前(先ほどメモした"Qiita Api Token")を指定します。-w
はどうやらパスワード以外のメタデータを除外するオプションっぽいです。
.vimrcから読み込む
Environment variableは.vimrc
からアクセスできるので、
letg:some_plugin={ user:'hoge', password: $QIITA_API_TOKEN }
ってな感じで安全にdotfileからSecretsを読み込めます。以上です!
良かったところ、改善して欲しいところ、もしよかったら感想コメント残してください!ありがとうございました。
参考記事:
https://coderwall.com/p/5ck85g/storing-secrets-in-the-macos-keychain