1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

ターミナルで二段階認証

サマリ

ターミナルで二段階認証できます。
もう二段階認証するためにMacを離れてスマホを使う必要はありません。

おことわり

  • 本内容はMacでの動作を想定しています。他のOSでは検証していませんのでご注意ください。
  • 本内容の対象となる二段階認証はTOTP(Time-based One Time Password)です。おそらく最も普及している二段階認証方式です。
  • 二段階認証に必要なシークレットキーの扱いには触れていません。各自で対策した上でお使いください。

初期手順

次のコマンドで必要なライブラリをインストールします。

brew install oath-toolkit

二段階認証方法

次の例に倣ってコマンドを実行します。

oathtool --totp --base32 {シークレットキー}

すると二段階認証に必要な6桁の数字が表示されます。

123456

お勧めの使い方

次のスクリプトに実行権限を与え、パスの通った場所におきます。

/bin/echo -n "Git "
oathtool --totp --base32 {gitのシークレットキー}
/bin/echo -n "AWS "
oathtool --totp --base32 {awsのシークレットキー}
...
% mfa
Git 123456
AWS 098765
...

ポイントは/bin/echoです。
通常のechoだと-nオプションが効かず改行してしまいますが、bash組み込みの/bin/echoなら-nにより改行を回避できます。

WARNING!!

冒頭にも書きましたが、この方法だとシークレットキーが生の状態なので危険です。シークレットといいつつオープンな状態です。
シークレットキーを何らかの方法で暗号化して保存するなどの対策を講じるか、危険を承知の上自己責任でご利用ください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?