1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CBcloudAdvent Calendar 2020

Day 1

ターミナルで二段階認証

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

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

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?