🔑
Googleの2段階認証をアプリを使わずMacのターミナルで行う
日々AWSにログインするのにスマホの認証システムアプリのコードを打ち込むのが面倒。
なのでMacbook上で完結するようにしてみました。
シークレットキーを取得する
AWSコンソールのIAMのユーザを選択し、認証情報
=>MFA デバイスの割り当て
=>管理
、仮想 MFA デバイス
を選択
シークレットキーの表示で出てくるシークレットキーを控える。
# ツールのインストール
brew install oath-toolkit
# 6桁コードの発行
oathtool --totp --base32 "<MFA設定時に発行されるシークレットキー>"
259927 # コードが出てくるのでこれをMFAコードとして利用する。
コマンド化する
alias awsotp='oathtool --totp --base32 "<MFA設定時に発行されるシークレットキー>" | pbcopy && echo "ワンタイムパスワードがコピーされました"'
exec -l $SHELL
awsotp
ワンタイムパスワードがコピーされました
これでawsotp
すると6桁コードがコピペされた状態になるのでログインコンソールのMFA認証の入力欄にCommand+Vで貼り付けてログインできるようになります。やったー!
ここまででも問題ないのですが、シークレットキーがテキストファイル直書きで少々不安、という方はこの後のキーチェーンに登録してそのシークレットキーを使う
に進んでください。
キーチェーンに登録してそのシークレットキーを使う
# キーチェーンにシークレットキーを登録
security add-generic-password -a ACCOUNT_NAME -w PASSWORD -s SERVICE_NAME
security find-generic-password -a ACCOUNT_NAME -s SERVICE_NAME -w
PASSWORD # これでキーチェーンからパスワード(シークレットキー)を取得できる
さっきのエイリアスの中身を書き換えます。
alias awsotp='oathtool --totp --base32 $(security find-generic-password -a ACCOUNT_NAME -s SERVICE_NAME -w) | pbcopy && echo "ワンタイムパスワードがコピーされました"'
これで.zshrcファイルからシークレットキーを直書きしない形になり、端末のパスワードがもれない限り安全になりました。
Discussion