oath-toolkit で Google の二段階認証をコマンドで行う

oath-toolkit というライブラリを使うと、Google Authenticator アプリで発行されるような6桁のワンタイム・パスコードをコマンドラインから発行できるようなので、試してみた。

Mac の場合、oath-toolkit は Homebrew でインストールできる。

$ brew install oath-toolkit

MacOS High Sierra で試したところ、依存パッケージである openssl@1.1.1imake test でハングする現象に遭遇してしまった。そこで --ignore-dependencies オプションを付けてとりあえずインストールし、brew unlink oath-toolkit && brew link oath-toolkit で誤魔化した。

$ oathtool

上のコマンドが動けば OK。

続いて、以下のページにアクセスする。

そしたら次のように操作していく。

# 次のようにキー文字列を入力すると6桁のコードが出力される
$ oathtool --totp --base32 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
000000

ココまでできたら準備完了。以下は、先程と同じコマンドを都度叩くことで、ワンタイムパスワードがコマンドラインで発行できるようになる。

以下のようにエイリアスにしておくと、ワンタイムパスワードを発行し、クリップボードにコピーしながら画面出力できるだろう。

alias onetimepass='oathtool --totp --base32 '\''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\'' | pbcopy ; pbpaste'