MacのターミナルでAWSの2段階認証のコードを発行する

投稿日
/
更新日
MacのターミナルでAWSの2段階認証のコードを発行する

AWSやGitHubなど、2段階認証がログイン時に一般的になっています。



その際私は今までiPhoneアプリの Google Authenticator を利用していました。

googleのauthenticatorアプリ




AWSのログインの場合、

多い時は1日に数回Macでログインしてその度にiPhoneで2段階目のパスコードを確認して、、


と中々手間がかかる事があります。




せっかく手元にMacがあるのだからMacでパスコードを確認できるものならしたい!

と思って見つけたのが今回の方法。


それを叶えるのが oathtool というライブラリです!



こちらのライブラリはAWSに限らず、例えばGoogleの2段階認証にも対応しています。



検証した環境

1 oathtool 2.6.6
2 Homebrew 3.4.6
3 macOS 12.3.1 Monterey


セキュリティリスクが上がるので導入はくれぐれもご注意を!

導入方法

oathtoolのインストール

$ brew install oath-toolkit
 
# インストール出来た事の確認
$ oathtool -v
oathtool 2.6.6

シークレットキーを設定

IAMの「仮想MFAデバイスの設定」からシークレットキーを取得します

仮想MFAデバイスの設定よりシークレットキーの情報を取得する


上記の「シークレットキーを表示」を押下して

表示されるシークレットキーを使ってターミナル上で oathtool コマンドを利用すると、

6ケタのコードが表示されます!

$ oathtool --totp --base32 "<MFA設定時に発行されるシークレットキー>"
012345 # Google Authenticator のアプリで発行されるコードと同じコード

これがGoogle Authenticator のアプリで発行されるコードと同じコードになります。



そのためAWS上では2つのMFAコードに、上記のコマンドで発行されるコードを2回入力します。



aliasを設定

毎回入力するのはめんどくさいためalias化すると便利です

awsopt='oathtool --totp --base32 <シークレットキー> | pbcopy && pbpaste && echo "ワンタイムパスワードがコピーされました"'


これで実行すると

$ awsopt
012345
ワンタイムパスワードがコピーされました

と表示され、

クリップボードにもコピーがされています!



あとはAWS上でログイン、cmd + v で貼り付ければ2段階認証が完了します。

プロフィール画像
Yuki Takara
都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。