1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSH鍵 を 1Password で管理する

Last updated at Posted at 2025-05-18

1Password にSSH鍵の管理機能があることを最近になって知ったので,その設定手順をメモとしてまとめます。

設定手順

0. SSHエージェントを有効にする

SSHクライアントが 1Password 内の鍵を使えるようにするため,1Password のSSHエージェントを有効にします。

このSSHエージェントは 1Password 内の鍵を使用しますが,明示的に許可しない限り,鍵が外部に出ることはありません。

1Password ケバブメニュー(︙)より設定画面を開きます。Ctrl + ,でも開けます。

image.png

[開発者]タブより,[SSHエージェントを使用]にチェックをいれます。

image.png

また,上項目の「1Password開発者エクスペリエンスを表示する」を有効化しておくと,サイドバーに開発者タブが出現します。このメニューではSSHエージェントが管理しているSSH鍵の一覧確認などが可能になります。

1. SSHクライアントの設定

SSHクライアント側でも,1Password を使用するように設定を行います。

・Macの場合

Macの場合,.ssh/configファイルに以下を追記します。

Host XXXXXX
    ...
    IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
    ...

・Windowsの場合

Windowsの場合,Microsoft OpenSSH が固定のパイプを使うため,SSHエージェントの場所を指定する必要はありません。

ただし,1Password SSH エージェントが動作できるように,OpenSSH Authentication Agentサービスの確認,設定をします。

  1. Win + rを押す
  2. services.mscと入力して[OK]
  3. 「OpenSSH」を探し,スタートアップの種類が「無効」になっていることを確認
    image.png
  4. 無効になっていなければ,ダブルクリックして設定を開き「無効」に設定。

2. SSH鍵ペアを作成する

1Passwordのアプリを開き,[+新規アイテム][SSHキー]を選択。
[+秘密鍵を追加]から既存の鍵,または新しい鍵を登録。

image.png

デフォルトでは,SSHエージェントはPrivate Vault内の鍵のみを認識します。そのため,ほかのVaultにある鍵を使用する際は,後述する設定ファイルagent.tomlに別途設定を記述する必要があります。

以下のコマンドで,SSH エージェントが認識している鍵を確認できます。

Windows (PowerShell)
$env:SSH_AUTH_SOCK = "\\.\pipe\openssh-ssh-agent"; ssh-add -l
Mac/Linux
SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1Password/t/agent.sock" ssh-add -l
実行例
PS C:\Users\koin3z> $env:SSH_AUTH_SOCK = "\\.\pipe\openssh-ssh-agent"; ssh-add -l
...
256 SHA256:A8kvTUp4SsvshwTjLnEECCUwxO++R5NJc3vPo9JUrGY my-sshkey (ED25519)
...
...

3. 接続確認

sshコマンドで接続すると,1Password の認証ポップアップが立ち上がり,認証を通過すると無事接続できます。

image.png

image.png

補足

・認証における 6 Keys Limit

SSHエージェントは認証に有効な鍵を当てるまで,管理している鍵を1つづつサーバーに提示します。
SSHサーバーでは認証試行回数(MaxAuthTries)が6回に設定されていることが多いため,SSHエージェントが提示する鍵が多い場合,以下のエラーではねられることがあります。

Received disconnect from xx.xx.xx.xx port 22:2: Too many authentication failures

これを回避するために,.ssh/configやSSHエージェント設定ファイルを使用し,どのホストに対してどのSSH鍵を使用するかを関連付けます。

.ssh/configの設定では,公開鍵をダウンロードしローカルに配置した後,IdentityFileにパスを記載し,以下のような形式にします。

Macの場合
Host XXXXXX
    ...
    IdentityFile <公開鍵のパス>
    IdentitiesOnly yes
    IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
    ...

また,Private Vault以外に鍵をおいている場合や,管理対象の鍵範囲を指定したい場合,SSHエージェントの設定ファイルagent.tomlを編集します(次節参照)。

・SSHエージェントの設定ファイル

個人のVaultだけでなく,任意のVaultやアカウントの鍵をSSHエージェントに使用させたい場合,SSHエージェントの設定ファイルを編集します。

ファイルは 1Password アプリからも鍵画面から開くことができます。

image.png

なお,設定ファイルの位置は以下の通りです。

Windows
%LOCALAPPDATA%/1Password/config/ssh/agent.toml
例)C:\Users\<user>\AppData\Local\1Password\config\ssh\agent.toml
Mac(以下の順に検索)
1. $XDG_CONFIG_HOME/1Password/ssh/agent.toml
2. ~/.config/1Password/ssh/agent.toml

agent.tomlファイルはTOML構文にて,[[ssh-keys]]ヘッダーと,その他3つの項目のうち1つ以上の設定が必要になります。

[[ssh-keys]]
item = "<アイテム名>"
vault = "<Vault名>"
account = "<アカウント名>"

なにか設定した場合,Private Vault 内の鍵が管理外になることがあるので,最後にはssh-add -lで対象の鍵が認識されていることを確認しておきます。

参考リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?