ロゴテキスト ロゴ

    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
    都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。