WebDesigner's Memorandumウェブデザイナーの備忘録

1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)

1Passwordはパスワード管理アプリとして使っている人が多いと思いますが、SSHキーやAPIトークン、.envまで扱える「開発者向け機能」が用意されていることはあまり知られていません。

今回は1Passwordの開発者向け機能についてまとめます。

1Password

1Passwordはパスワード管理アプリです。マスターパスワードを1つ覚えておけば、あらゆるサービスのパスワード情報を全部管理できます。

この手のパスワード管理アプリは数多くありますし、最近はApple純正のパスワード管理アプリもあります。

そして今回紹介する1Password Developerは、1Passwordが開発者向けに用意している機能の総称です。
執筆時点では主に下記の4つがあります。

  • SSHエージェント(1Password SSH Agent)
  • 環境(1Password Environments)
  • CLI(1Password CLI)
  • Watchtower(Developer Watchtower)

すでに1Passwordのアプリをインストールして使っている場合、[環境設定]→[開発者]で有効にして使用できます。

1Password CLIのインストール

1Password CLIを使うためには、デスクトップアプリとは別でインストールする必要があります。

Homebrewでインストールするか、公式サイトからインストーラーをダウンロードして実行しましょう。

ちなみに「環境(1Password Environments)」機能は現在ベータ機能なので、使用したい場合はベータ版をインストールする必要があります(1Password CLI 2.33.0-beta.02以降でのみ利用可能)。

brew install --cask 1password-cli@beta

Environmentsが不要な場合は通常版をインストールしましょう。

brew install --cask 1password-cli

1Password Developerの初期設定

1Passwordデスクトップアプリの[環境設定]→[開発者]を開いて、[1Password開発者エクスペリエンスを表示する]にチェックを入れます(1Password 7の頃のデスクトップアプリを使っている場合は利用不可なので、最新版のデスクトップアプリをインストールしましょう)。

これで1Passwordアプリのサイドバーに[開発者]が表示されるようになります。

そのうえで、用途に応じて下記もオンにしておきます。

  • [1Password CLIと連携]
  • [ディスク上の開発者認証情報をチェックする]

これで最初の設定は完了です。

1Passwordの開発者向け機能

ここからは4つの機能を1つずつ紹介します。
それぞれの機能の概要は下記の通りです。

機能できること
SSHエージェント(1Password SSH Agent)1Password内のSSH鍵でGitやSSH認証を行う
環境(1Password Environments)環境変数を管理し、.envのマウントやCLIから読み込む
CLI(1Password CLI)opコマンドでシークレット取得や注入を行う
Watchtower(Developer Watchtower)~/.ssh以下のSSH鍵を監査する

SSHエージェント

1PasswordのSSHエージェントは、1Passwordに保存したSSHキーを使ってGitやSSH接続を認証する機能です。
秘密鍵を各マシンの~/.sshに置きっぱなしにせずに済むのがメリットですし、鍵の実体は1Passwordアプリの外に出ません。

また、接続時は1Password側で認証の許可を出す形になるので、「秘密鍵ファイルはあるけれど、どのプロセスが使っているか分かりにくい」という状態を避けやすくなります。

GitHub用とサーバー接続用で鍵を分けたい場合も、1Password側でVaultを分けて管理できます。
最近のアクティビティもアプリ側で確認できるので、「この鍵いつ使われたっけ?」を後追いしやすいのも嬉しいポイントです。

ただし、LinuxのFlatpak版やSnap版の1PasswordアプリだとSSHエージェントが動きません。Linuxで使う場合は注意が必要です。

SSHエージェントの初回設定方法

まずは[環境設定]→[開発者]で[SSHエージェントを使用]にチェックを入れます。

[SSHの設定を変更する…]ボタンをクリックすると、設定が表示されます。
表示されるコードを「~/.ssh/config」に追加するか、もしくは[自動的に編集]ボタンを押すと自動で追加してくれます。

正常に追加されると、モーダルが閉じて「SSHエージェントが追加されました」メッセージが表示されます。

SSHキーの登録

次に、すでに使っているSSHキーを1Password側に登録したり、SSHエージェントで利用するように設定する必要があります。

1Passwordアプリのサイドバーにある[開発者]をクリックし、[SSHエージェントを表示]ボタンをクリックします。

[新しいSSHキー]ボタンをクリックすると、新たにSSHキーの新規アイテム登録画面が表示されます。

ちなみに、ここから登録しなくても[新規アイテム]の中から[SSHキー]を選択しても登録できます。

登録できたら、[すべてのSSHキーを表示]でSSHキーに絞り込んだアイテム一覧が表示されます。
SSHエージェントに追加したいアイテムを選択して、[SSHエージェントの設定ファイルを開く…]ボタンをクリックします。

ターミナルなどで「agent.toml」ファイルが開くので、ここにSSHエージェントのアイテムを下記の形式で追加します。

agent.toml[[ssh-keys]]
item = "アイテム名"
vault = "アイテムを格納しているVault名"

入力して保存したら、1Passwordを一度ロックしてから再度解除する必要があります(shift + command + Lでロックできます)。

一度ロック → 解除することで、1Password側で認識されるようになります。
もう一度サイドバーにある[開発者]→[SSHエージェントを表示]で[利用できるSSHキー]に表示されていればOKです。

ここからさらにGitのコミットに署名するには、再度SSHキーのアイテム詳細画面に移動します。

今度は[次のステップ:Gitのコミットに署名する]と書かれているので、[設定する…]ボタンをクリックします。

[Gitコミットの署名を設定する]画面が表示されるので、出てきたコードを~/.gitconfigファイルに追加すると、そのキーで署名出来るようになりますし、[自動的に編集]ボタンを押せば自動でファイルを編集して設定してくれます。

最初の設定は面倒ですが、1Passwordで管理しているSSHキーをそのまま使えるようになります。

あとはいままでSSHキーを1Passwordで管理していなかったので、この機会に少しずつ1Passwordで管理するように移行していっています。
PCの移行時などにも1Passwordを接続して移行できるので便利そうです。

1Password Environments

1Password Environmentsは、プロジェクト用の環境変数(.envファイル)を1Password上で管理する機能です。
通常のアイテムとは別枠で、.envファイルを管理できます。

ただし、この機能は2026年6月時点ではまだベータ版ですし、1Password CLIから読み込む場合には1Password CLIをベータ版にしておく必要があります。

1Password CLIと一緒に使用する場合が多く、op run --environmentというコマンドを使って、必要なタイミングだけ環境変数を注入してコマンドを実行できます。

例えば、下記のコマンドを実行すれば指定の.envを使ってnpm run devを実行できます。

op run --environment <environment-id> -- npm run dev

また、.envファイルをマウントする仕組みも用意されていて、平文の.envをディスクに置かずに済みます。

環境の追加方法

1Passwordアプリのサイドバーにある[開発者]をクリックし、[環境を表示]ボタンをクリックします。

[新しい環境]ボタンをクリックして追加します。

追加したら既に作成済みの.envファイルをドラッグアンドドロップでインポートするか、[新しい変数]ボタンで変数と値を入力します。

これで環境変数の追加は完了です。

ローカルにマウントする

作成した環境変数をローカルの.envファイルとしてマウントする場合は[保存先]タブを選択して、ローカル.envファイルの[保存先の設定]をクリックします。

[ファイルパスを選択する]ボタンをクリックしてマウントしたいフォルダを選択すれば、そこに.envファイルがマウントされます。

1Password CLI経由で読み込む場合

ターミナルコマンド上で使用したい場合は、1Password CLIを使って読み込みます。

[アクセスの管理]の右横にあるボタンを選択して[環境IDをコピーする]をクリックします。

そのあと、下記コマンドの「<environment-id>」部分にコピーした環境IDをペーストして、「npm run dev」部分は実行したいコマンドを入力します。

op run --environment <environment-id> -- npm run dev

これでコマンドを実行すると1Passwordの認証が求められて、解除すると1Password Environmentsで管理している環境変数が渡った状態でコマンドが実行されます。

1Password CLI

1Password CLIをインストールすると、ターミナル上でopコマンドが使えるようになります。
このコマンドを使うことで、1Passwordの情報をターミナル上で扱えるようになります。

また、[環境設定]→[開発者]で[1Password CLIと連携」にチェックを入れておくと、opコマンドを使うときの認証にTouch IDが使えるようになります。

1Passwordの開発者向け機能はCLIと組み合わせて使い場合が多いので、基本1Password CLIはインストールする前提で考えた方が良さそうです。

Developer Watchtower

Developer Watchtowerは、ローカルディスク上の開発者向け認証情報をチェックする機能です。
現時点の対象は~/.ssh以下にあるSSH秘密鍵になっています(APIキーや.envまで全部スキャンしてくれるわけではありません)。

1Passwordアプリのサイドバーにある[開発者]をクリックし、[Watchtowerを表示]ボタンをクリックして確認できます。

通常のWatchtowerが漏えいパスワードや弱いパスワードを確認する機能なのに対して、こちらは開発用のSSH鍵まわりを見る機能だと考えると分かりやすいです。

SSHエージェントを使うためにすべて1Password上で管理している場合は不要ですが、そうでない場合はSSHキーの監査をしてくれます。

検出対象はOpenSSH、PKCS#8、PKCS#1形式のSSH秘密鍵で、~/.ssh配下を最大3階層までスキャンします(シンボリックリンクは追わず、1MiBを超えるファイルはスキップされます)。

警告内容は下記のようなものです。

  • 1Passwordにすでに取り込んだ鍵の重複
  • パスフレーズなしで平文保存された秘密鍵
  • 古い方式の危険な鍵

いままで雑に管理していた人は、一度見ておくと良いかもしれません。

まとめ

1Passwordは単純なパスワード管理だけでなく開発者にとって便利かつセキュリティ上注意しないといけない情報の管理もできるようになっています。

チームプランを利用すれば、これらをチームで共有して管理できるのも嬉しいポイントです。
.envを直接チャットサービスなどで送付していたり、どこかにそのままファイルを置いているよりも1Passwordで管理している方がセキュアです。

こうした取り組みは面倒ですが、セキュリティ関連は何かあってからでは遅いです。

すでに1Passwordを使っている人は試してみてはいかがでしょうか。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね