1Password CLIを使ってワンタイムパスワードをターミナル上に表示する

1Passwordではパスワードだけではなく、ワンタイムパスワードの登録もすることができます。 そのワンタイムパスワードをターミナル上に表示する方法を調べてみました。
2018.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、サーバーレス開発部の夏目です。

AWSのMFAなどを管理するために1Passwordを使用しているのですが、をターミナルでワンタイムパスワードの入力が必要な際にいちいちアプリを開いてコピーするのが面倒でした。

1PasswordにはCLI Toolがあるので、それを使ってターミナル上にワンタイムパスワードを表示します。

表示のやり方

1. CLI Toolのダウンロード

まずはこちらのページからCLI Toolをダウンロードします。

以下はMacのターミナルで使用する場合のコマンドです。

$ curl -o cli.zip https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v0.4.1.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 3110k  100 3110k    0     0  2459k      0  0:00:01  0:00:01 --:--:-- 2522k
$ unzip cli.zip
Archive:  cli.zip
  inflating: op
 extracting: op.sig
$ ls -l
 total 24552
-rw-r--r--  1 natsume.yuta  staff  3184814  7  7 22:09 cli.zip
-rwxr-xr-x  1 natsume.yuta  staff  9376816  6  2 00:51 op
-rw-r--r--  1 natsume.yuta  staff      566  6  2 00:51 op.sig

この"op"ファイルがCLIの実行ファイルになります。

2. 最初のサインイン

次に最初のサインインをします。

$ ./op signin example.1password.com wendy_appleseed@example.com A3-XXXXXX-XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX
  • example.1password.com: 1Passwordの認証に使っているドメイン
  • wendy_appleseed@example.com: 1Passwordに登録しているメールアドレス
  • A3-XXXXXX-XXXXXX-XXXXX-XXXXX-XXXXX-XXXXX: 1PasswordのアカウントのSecret Key

以上の情報を引数として渡して実行すると、マスターパスワードの入力が求められます。

Secret Keyなどの情報は1Passwordにアカウントを登録した際にダウンロードしたEmergency Kitに記載されていますので、わからない場合はそちらを確認してください。

これ以降は、以下のコマンドでサインインできるようになります。
(引数に渡すのは1Passwordの認証に使っているドメインのサブドメインだけでいいです)

$ ./op signin example

3. ワンタイムパスワードの表示

以下のコマンドでワンタイムパスワードを表示することができます。

$ op signin example --output=raw | op get totp -v "[ログイン名]"
  • [ログイン名]: ワンタイムパスワードを登録している1Passwordのログイン情報の名前

こちらの方法だと毎回マスターパスワードの入力が必要になります。

セッション情報を環境変数に書くことで一度サインインすると、一定時間サインインなしで使用できるようになります。 その方法に関してはGet started with the command-line toolを確認して欲しい。

まとめ

以上の方法で1Passwordに登録しているワンタイムパスワードをターミナル上で表示することができました。 CLI Toolを使うと他にも色々とできるようなので、興味がある人は調べてみてください。