LoginSignup
7
7

More than 3 years have passed since last update.

macOS Keychainを使ってdotfile内のsecretsを管理しよう

Last updated at Posted at 2020-01-12

背景

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を使っていたので、このようにしました。

~/.zshrc
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からアクセスできるので、

~/.vimrc
let g:some_plugin = { user: 'hoge', password: $QIITA_API_TOKEN }

ってな感じで安全にdotfileからSecretsを読み込めます。以上です!

良かったところ、改善して欲しいところ、もしよかったら感想コメント残してください!ありがとうございました。

参考記事:

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