🔐

1Password SSH Agentで複数のSSH鍵を使い分ける

2023/05/24に公開

GitHub複数アカウントの認証問題

1Password SSH Agentを使用して、GitHub上で複数のアカウントを使い分けてSSH接続する時認証エラーになることがあります。
リモートのサーバー上でSSH Agent Forwardingを使ってGitHubに接続する場合、リモートサーバーへの接続時の鍵が利用されるとは限らないためです。

鍵を指定してGitHubに接続する

通常このような問題を解決するにはIdentityFileで秘密鍵を指定すると思います。
しかし、その場合GitHubへ接続したい秘密鍵をリモートサーバーに保存する必要があり、せっかく秘密鍵をファイルとして残さないように1Password SSH Agentを使っているメリットがなくなってしまいます。

IdentityFileには公開鍵を指定できる

実はIdentityFileでは公開鍵を指定することができます。リモートサーバーの~/.ssh/id_ed25519.pubに公開鍵を保存し以下の設定することで指定した鍵でGitHubに接続できるようになります。

~/.ssh/config
Host github.com
  IdentityFile ~/.ssh/id_ed25519.pub
  IdentitiesOnly yes

SSH鍵の管理はセキュリティの基盤なので、できるだけシンプルに安全に管理していきたいですね。

Discussion