BLOGサブスレッドの日常
2025.12.02
1Password での ssh 鍵管理がラクになっていた
tama
tama です。
以前 ryosms も記事を書いてくれていますが、サブスレッドでは全従業員が 1Password を使っています。
セキュリティ意識はもちろん大切ですが、意識していても面倒くさくて実践されないと意味がありません。
便利なものに頼れるところは頼り倒して安全を得たいものです。
(本題から逸れますが、1Password の Business プランには各ユーザーに Families プランが付いてくるというバグのような特典があるので、パスワードやssh鍵、カード番号などの秘密情報を、業務用と個人用とで分けて管理できるのがとても (・∀・)イイ!! です)
以前から SSHエージェント を使って ssh の鍵も 1Password で管理していたのですが、ちょっぴり面倒なところがありました。
課題
鍵認証による ssh アクセスは、次の流れで処理が行われます(sshクライアント次第で実装は異なります)。
- 自分が扱うことのできる鍵を列挙
- ひとつずつ使ってみてサーバーにアクセス試行
- 正しい鍵を使えばログインに成功
トライ&エラーを繰り返すのでちょっと無駄ですね。
何より問題は、多くの ssh サーバー(sshd)は、6回続けて認証に失敗するとそれ以上試行させてくれません = ログインできません。
(Y社のルーターの管理コンソール(ssh対応)は 3回認証失敗すると 1分間ログインできなくなります)
1Password で鍵をラクラク管理できるからと調子に乗って鍵を増やしていくと、すぐログインできなくなってしまいます。
これまでの対策
「このアクセス先にはこの鍵を使ってちょ」を ssh クライアントに伝えれば対策できます。
# ~/.ssh/config
Host *
IdentityAgent "/Users/tama/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
Host 192.168.71.1
IdentityFile ~/.ssh/keys/RTX830-Wish701.pub
IdentitiesOnly yes
例えばこんな感じで、
「192.168.71.1 と通信するときは公開鍵 ~/.ssh/keys/RTX830-Wish701.pub の秘密鍵を使ってね」
と伝えているイメージです。
公開鍵は、文字通り秘密情報ではないので、ディスク上に平文で書き出しても気になりません。
(秘密鍵はちゃんと 1Password で安全に管理されているものが使われます)
でもアクセスするホストが増えるたびにこの設定をするのは…大変です。
1Passwordのステキ機能
1Password の設定 → 開発者タブ → SSHエージェント の中に、
ブックマークされたホストを含むSSH設定ファイルを生成する というオプションが増えていました。

これをONにすると、 ~/.ssh/1Password/ 以下に、ssh の config ファイルと公開鍵ファイルを自動的に出力してくれます。
~/.ssh/config の先頭に
Include ~/.ssh/1Password/config
こう書いておけば、ssh クライアントがこの自動生成された configファイルを読み込んでくれます。
いちいちサーバーごとに Host や IdentityFile の設定を書くお仕事から開放されます…!
(詳しくは公式ドキュメント参照)
この機能を使うためには、ssh 鍵情報をブックマークする必要があります。
ssh 鍵のアイテムを開いて、任意のフィールドに ssh://ホスト名 と入れて保存します。

これだけで自動的に ~/.ssh/1Password/ に公開鍵がエクスポートされ、 ~/.ssh/1Password/config も更新されるので、設定を書き換えなくても ssh で 1Password が管理している鍵を使ってもらえるようになります!
ブックマークとは
ブックマーク一覧を見てみましょう。
まず、先ほどと同じ 1Password の設定 → 開発者タブ の中の 1Password開発者エクスペリエンスを表示する にチェックを入れておきます。
これで 1Password ウィンドウのサイドメニューに「開発者」(Developer)というメニューが表示されるようになります。

この中の「SSHエージェント」を開くと、ssh 鍵、ブックマーク、最近のアクティビティ(ssh鍵の利用履歴)を一覧することができます。
ブックマークタブを開くと、アイテムに追加した ssh://ホスト名 が一覧され、どの ssh 鍵を使うかも表示され、接続ボタン一発で ssh することができます。
ブックマーク削除もここからできます。
アクティビティに履歴があれば、そちらからブックマークに追加することもできます。
1Password Developer、ほかにもいろんな機能があるので使っていけるといいですね(o'ヮ'o)
そんなわけで ssh 鍵をたくさん持っていても設定がラクになっていました!
例えば EC2 なんかは Session Manager を使って接続するので最近は ssh を使う機会も(以前よりは)減っていますが、とは言え管理対象はどんどん増えていくものなので、これを活用して安全に ssh 鍵を使い分けたいと思います。
この記事を書いた人
tama
