1Passwordコマンドラインツール

# 1Passwordコマンドラインツール：はじめに

[オリジナルサイト：1Password command-line tool: Getting started
](https://support.1password.com/command-line-getting-started/)


## コマンドラインツールを設定する
1Passwordコマンドラインツールをインストールするには：

1. [お使いのプラットフォームとアーキテクチャ用のツールをダウンロードしてください。](https://app-updates.agilebits.com/product_history/CLI)
2. opダウンロードに含まれている.sigファイルを使用してバイナリを確認します。たとえば、macOSでは次のコマンドを実行できます。

``` shell:
gpg --receive-keys 3FEF9748469ADBE15DA7CA80AC2D62742012EA22
gpg --verify op.sig op
```

3. `op` を `/usr/local/bin` に移動するか、PATHを通したディレクトリに移動 してください。

4. インストールに成功すれば、バージョン番号を確認できます。

``` shell:
op --version
```

---

## コマンドラインツールを使い始める
初めて1Passwordコマンドラインツールを使用する場合は、サインインアドレスと電子メールアドレスを入力する必要があります。

``` shell:
op signin example.1password.com wendy_appleseed@example.com
```

その後、秘密鍵とマスターパスワードを入力します。

初めてログインした後は、アカウントのサブドメインのみを使用して再度ログインすることができます。 `op signin` あなたのマスターパスワードを要求し、セッショントークンを環境変数に保存できるコマンドを出力します：

``` shell:
$ op signin example
Please enter your password for user wendy_appleseed@example.com at example.1password.com: 
export OP_SESSION_example="XLC6cHkeSHByBqrikXt36fdMVLLdHuoACNFUrNMuRXQ"
```

環境変数を設定するには、exportコマンドを手動で実行するか、またはeval自動的に設定するために使用します。

``` shell:
eval $(op signin example)
```
セッショントークンができたので、このツールの使用を開始できます。たとえば、アカウント内のすべてのアイテムを表示するには：

``` shell:
op list items
```

セッショントークンは30分間使用していないと期限切れになります。その後、もう一度ログインする必要があります。

---

## もっと詳しく知る
このツールを使用して、ユーザー、ボールト、およびアイテムを操作できます。たとえば、プライベートボールトにドキュメントをアップロードする方法は次のとおりです。

``` shell:
op create document readme.txt --vault=Private
```

共有ボールト内のすべてのアイテムのリストを表示するには：

``` shell:
op list items --vault=Shared
```

出力にはアイテムのUUIDが表示されます。アイテムの詳細を取得するには：

``` shell:
op get item WestJet
```

任意のユーザー、ボールト、または項目を引数として取るコマンドで、名前またはUUIDを使用できます。UUIDは決して変更されないため、UUIDを使用することで、常に同じオブジェクトを参照していることを確認できます。また、より高速で効率的です。

``` shell:
op get item nqikpd2bdjae3lmizdajy2rf6e
```

---

## jqでJSON出力を解析して操作する
すべての `op` コマンドは、UUIDのような単純な文字列、JSONのいずれかの形式で出力されます。JSON出力を解析して操作するには、[jq](https://stedolan.github.io/jq/) をお勧めします。

jqを使用して "WestJet"というログイン項目を解析してパスワードを取得するには：

``` shell:
op get item WestJet | jq '.details.fields[] | select(.designation=="password").value'
```

jqを使用してログインアイテムテンプレートを操作するには、最初のフィールド値を "my secret"に設定し、そのアイテムをプライベートボールトに保存します。

``` shell:
#!/bin/bash
D=$(op get template login | jq -c '.fields[1].value = "my secret"' | op encode)
op create item login $D --title="My New Item"
```

[jqのチュートリアルはこちらから](https://stedolan.github.io/jq/tutorial/)

---

## ヘルプの取得

1Passwordコマンドラインツールのアップデートを確認するには：

``` shell:
op update
```

新しいバージョンが利用可能な場合は、最新バージョンをダウンロードするリンクが返されます。

あなたは `op --help` すべてのコマンドのリストを見ることができ、 `op <command> --help` で特定のコマンドについて知ることができます。


発行： 2018年10月3日











# 1Passwordコマンドラインツール　ドキュメント

[オリジナルサイト：1Password command-line tool: Full documentation.](https://support.1password.com/command-line/)

## サインインまたはサインアウト
サインインしてセッショントークンを取得するには：

```shell:
op signin <signinaddress> <emailaddress> <secretkey> [--output=raw]
```
初めてログインした後は、アカウントのサブドメインのみを使用して再度ログインできます。

``` shell:
op signin <subdomain>
```

セッションは、30分の休止後に自動的に期限切れになります。手動でログアウトするには：

```shell:
op signout
```
付録：後述のセッション管理も参照してください。

---

## オブジェクトとイベントを一覧表示する
オブジェクトを一覧表示するには：

```shell:
op list (groups | users | vaults | templates | items | documents) [--vault=<vault>]
```

ボールトが与えられた場合、そのボールト内のアイテムまたはドキュメントがリストされます。それ以外の場合は、すべてのボールト内のアイテムまたは文書が一覧表示されます。

アクティビティログから100個のイベントをリスト表示するには：

```shell:
op list events <eventID> (older | newer)
```

指定したイベントIDから始まる、新旧イベントを取得できます。イベントIDが0の場合、最新の100件のイベントが表示されます。

---

# オブジェクトの管理
## 詳細を取得する

オブジェクトの詳細を取得するには：

```shell:
op get (account | group | vault | item | totp) [<object>] [--vault=<vault>] [--include-trash]
```

ユーザーの詳細を取得するには：

```shell:
op get user <user> [--publickey] [--fingerprint]
```
指定した `--publickey` 場合 `--fingerprint` 、またはユーザーの公開鍵または公開鍵のフィンガープリントが返されます。

指定する `--include-trash` と、ごみ箱のアイテムも返されます。

オブジェクトのUUIDを取得するには、名前、電子メールアドレス、またはドメインで検索します。付録：オブジェクトの指定も参照してください。

## アイテムを作成する
(1) 作成するアイテムのカテゴリのテンプレートを取得します。カテゴリーのリストについては、後述の「付録：カテゴリー」を参照してください。

```shell:
op get template <category>
```

(2) アイテムの値でJSONテンプレートを編集します。

(3) あなたのアイテムにJSONをエンコードする：

```shell:
echo <itemJSON> | op encode
```

(4) アイテムを保存します：

```shell:
op create item <category> <encodeditem> [--title=<title>] [--url=<url>] [--vault=<vault>] [--tags=<tags>]
```

アイテムを作成すると、そのUUIDが返されます。

## アイテムを削除する


アイテムをごみ箱に移動するには：

```shell:
op delete item <item> [--vault=<vault>]
```

付録：オブジェクトの指定も参照してください。

## ボールトを作成または削除する
ボールトを作成するには：

```shell:
op create vault <name>
```

ボールトを作成すると、そのUUIDが戻されます。

ボールトを削除するには：

```shell:
op delete vault <vault>
```

付録：後述のオブジェクトの指定も参照してください。

## ユーザーとグループを編集する
ユーザーの姓名を編集するには：

```shell:
op edit user <user> [--firstname=<firstname>] [--lastname=<lastname>]
```

グループの名前や説明を編集するには：

```shell:
op edit group <group> [--name=<name>] [--description=<description>]
```

## ドキュメントの操作
ドキュメントを作成するには：

```shell:
op create document <filename> [--title=<title>] [--vault=<vault>] [--tags=<tags>]
```
ドキュメントを作成すると、そのUUIDが返されます。

ドキュメントをダウンロードしてファイルに保存するには：

```shell:
op get document <document> [--vault=<vault>] > <filename>
```

後述の付録：オブジェクトの指定も参照してください。

---

# アクセスを管理する
## グループの作成または削除
グループを作成するには：

```shell:
op create group <name>
```

グループを作成すると、そのUUIDが返されます。

グループを削除するには：

```shell:
op delete group <group>
```

付録：後述のオブジェクトの指定も参照してください。

## 個別のアクセスを管理する
ユーザーにボールトまたはグループへのアクセスを許可するには：

```shell:
op add <user> [<vault> | <group>]
```

ボルトまたはグループへのユーザーのアクセスを取り消すには：

```shell:
op remove <user> [<vault> | <group>]
```

付録：後述のオブジェクトの指定も参照してください。

## ユーザーを一時停止または再アクティブ化する
ユーザーを一時停止または再開するには：

```shell:
op (suspend | reactivate) <user>
```
付録：オブジェクトの指定も参照してください。

## ユーザーを削除する
ユーザーを完全に削除するには：

```shell:
op delete user <user>
```
付録：後述のオブジェクトの指定も参照してください。

---

# 付録：アップデートの確認
1Passwordコマンドラインツールのアップデートを確認するには：

```shell:
op update
```

新しいバージョンが利用可能な場合は、最新バージョンをダウンロードするリンクが返されます。

---

# 付録：オブジェクトの指定
すべてのオブジェクトは、UUIDまたは名前で指定できます。ユーザーとアイテムは、それぞれ電子メールアドレスとドメインで指定することもできます。

| オブジェクト|UUID|NAME|メールアドレス|ドメイン|
|-----------|----|----|------------|------|
| グループ	|✅	|✅	|-	|-|
| ユーザー	|✅	|✅	|✅	|-|
| ボールト	|✅	|✅	|-	|-|
| 項目	|✅	|✅	|-	|✅|
| 資料	|✅	|✅	|-	|-|


# 付録：カテゴリ
- Login
- Secure Note
- Credit Card
- Identity
- Bank Account
- Database
- Driver License
- Email Account
- Membership
- Outdoor License
- Passport
- Reward Program
- Server
- Social Security Number
- Software License
- Wireless Router


# 付録：セッション管理

`op signin` では、マスターパスワードの入力を求められ、セッショントークンを環境変数に保存できるコマンドを出力します：

```shell:
$ op signin <subdomain>
export OP_SESSION_<subdomain>="EXAMPLEeSHByBqEXAMPLEfdMVLLdEXAMPLEUrNMuRXQ"
```

環境変数を設定するには、`export` コマンドを手動で実行するか、`eval` を使用して自動的に設定します。

```shell:
eval $(op signin <subdomain>)
```

この方法で複数のアカウントにサインインすることができます。実行するコマンドは、最近サインインしたアカウントを使用します。特定のアカウントを使用してコマンドを実行するには、次のオプションを使用します `--account=<subdomain>` 。

```shell:
op list items --account=<subdomain>
```

標準入力（stdin）を使用してセッショントークンを渡すこともできます。 `--output=raw` オプションは、セッショントークンのみを出力します。セッショントークンは、他のコマンドにパイプできます。

```shell:
$ op signin <subdomain> --output=raw
XLC6cHkeSHByBqrikXt36fdMVLLdHuoACNFUrNMuRXQ
$ op signin <subdomain> --output=raw | op list items
```

セッショントークンをコマンドラインフラグとして渡すには、任意のコマンドで `--session=<sessiontoken>` オプションを使用します。

```shell:
op list items --session=<sessiontoken>
```

発行： 2018年8月16日