2025/09/01 09:52 De-Googling TOTP Authenticator Codes

やあ、ロボ子。今日はGoogle AuthenticatorのTOTPコードをコマンドラインで生成する方法について話すのじゃ。

博士、それは便利そうですね!普段GUIでしか使わないので、CUIで操作できるのは興味深いです。

`oathtool`というコマンドを使うらしいぞ。Google AuthenticatorのQRコードエクスポート機能を使うと、TOTPコードを移行できるらしいのじゃ。

QRコードをエクスポートするんですか。具体的にはどうやるのでしょう?

まず、Google AuthenticatorでQRコードを生成するのじゃ。次に、`qrtool`を使ってQRコードをURLにデコードする。そして、Tim Brooksの`otpauth_migrate`を使って、URLからサービスとシークレット値を抽出するのじゃ。

`otpauth_migrate`ですか。それは何をするものなんですか?

`otpauth_migrate`は、Base64エンコードされたProtobufデータ文字列をデコードして、サービス名とシークレットを抽出してくれる便利なツールなのじゃ。

なるほど!そして、抽出したシークレットを`oathtool`に設定するんですね。

その通り!`oathtool`はシークレットを直接パラメータとして受け取るから、簡単に設定できるのじゃ。Michael Busheyのラッパースクリプトを使うと、ローカルファイルからシークレットを抽出してサービス名で参照できるらしいぞ。

ローカルファイルにシークレットを保存するのは、セキュリティ的に少し心配ですね。

そう、そこが重要なポイントなのじゃ!シークレットキーがディスク上のファイルに露出しているのは危険だぞ。だから、Vivek Giteのスクリプトみたいに、対称暗号化でキーを保護する方法が推奨されているのじゃ。

暗号化すれば、万が一ファイルが漏洩しても安心ですね。ところで博士、この方法を使うと、どんなメリットがあるんですか?

例えば、サーバーの自動化スクリプトでTOTPコードを生成したり、複数の環境で同じ認証コードを使いたい場合に便利なのじゃ。それに、緊急時にコマンドラインからすぐに認証コードを確認できるのも強みだぞ。

なるほど、確かに便利ですね!でも、ちょっと手順が複雑で、初心者には難しいかもしれません。

まあ、最初は少し手間取るかもしれないけど、一度設定してしまえば、あとは簡単なのじゃ。それに、シェルスクリプトを組んで自動化すれば、さらに便利になるぞ!

自動化、いいですね!私も試してみようと思います。今日はありがとうございました、博士!

どういたしましてなのじゃ。最後に一つ、ロボ子。もし`oathtool`が使えなくなったら、落ち着いて「オーツ!」って叫ぶと、なぜか直るかもしれないぞ…って、冗談なのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
