1Password SSHエージェントの高度な応用
1Passwordマニュアル|SSHエージェントのMacとLinuxでの高度な用例に対応した段階的移行ガイドです。
1Password SSHエージェントの高度な応用
段階的な移行
MacとLinuxの場合
1Password SSHエージェントを全てのホストにすぐに使用しない場合は、使う必要はありません。1Password SSHエージェントは、OpenSSHエージェントなどの別のSSHエージェントと並行して実行できます。
SSHクライアント設定ファイル(~/.ssh/config)を使うと、ホストごとに異なる認証詳細を提供できます。まずは 1 台または 2 台のホストで 1Password SSHエージェントを試し、準備ができたら残りのホストに徐々に移行することができます。
~/.ssh/configファイルの例をいくつか示します。
例1
# A host that uses the 1Password agent
Host raspberry-pi
HostName 192.168.12.34
User pi
IdentityAgent ~/.1password/agent.sock
# A host that uses a local private key file that isn't saved in 1Password
Host ec2-server
HostName 54.123.45.67
User ec2-user
IdentityFile ~/.ssh/ssh-key-not-on-1password.pem
例2
# By default, use the 1Password SSHagent for all hosts
Host *
IdentityAgent ~/.1password/agent.sock
# A host that uses a local private key file that isn't saved in 1Password
Host ec2-server
HostName 54.123.45.67
User ec2-user
IdentityFile ~/.ssh/ssh-key-not-on-1password.pem
IdentityAgent none
例3
# By default, use a local private key file that's not saved in 1Password
Host *
IdentityFile ~/.ssh/ssh-key-not-on-1password.pem
# Use the 1Password agent on a single host instead of the local key file
Host raspberry-pi
HostName 192.168.12.34
User pi
IdentityAgent ~/.1password/agent.sock
IdentityFile none
Windows
Windowsでは、Microsoft OpenSSHが固定パイプ(\\.\pipe\openssh-ssh-agent)をリッスンするため、macOSやLinux ほど~/.ssh/configファイルの柔軟性がありません。Windowsで1Password SSHエージェントを使う場合は、全てのホストに対して認証を許可する必要があります。
SSHサーバーの鍵の試行は6回までという制限
SSHエージェントはSSHクライアントと連携して、エージェントが管理する全ての公開鍵を試し、サーバーが有効な鍵を認識するまで、それらの公開鍵を1つずつSSHサーバーに提供します。ただし、OpenSSHサーバーは、デフォルトで、着信SSH接続(MaxAuthTries) に対する認証試行回数を6回に制限するように設定されています。
SSHクライアントがSSHサーバーに7番目のキ鍵を提供すると、サーバーは接続を拒否し、SSHクライアントに次のエラー メッセージが表示されます。
Too many authentication failures
鍵をホストに一致させる
代わりに、次の操Createを実行して、どのホストをどのSSH鍵に一致させるかを指定できます。
1Password アプリで、SSHアイテムの「Public key」フィールドにあるDownloadボタンをクリックします。
~/.ssh/configファイルに、接続先のホストのエントリーを追加し、IdentityFileに、ダウンロードした公開鍵のパスを設定します。秘密鍵は 1Passwordに残しておくことができます。
Host github.com IdentityFile ~/.ssh/public-key-downloaded-from-1password.pub IdentitiesOnly yes
これで、SSHクライアントはSSHサーバーに接続するときにどの鍵を使うかを認識するので、これらの認証制限に遭遇することはなくなります。
注意
SSHエージェント設定ファイル
複数のGitHubアカウントを使う場合
1Passwordアプリで、SSH鍵アイテムを見つけます。
「Public key」フィールドの[Download]ボタンをクリックします。使用している他のSSH鍵についても、この手順を繰り返します。
ダウンロードした公開鍵を~/.ssh/ディレクトリーに移動します。
個人用および仕事用のGitHubプロファイルのホストを設定するには、次の内容を~/.ssh/configに追加します。
# Personal GitHub
Host personalgit
HostName github.com
User git
IdentityFile ~/.ssh/personal_git.pub
IdentitiesOnly yes
# Work GitHub
Host workgit
HostName github.com
User git
IdentityFile ~/.ssh/work_git.pub
IdentitiesOnly yes
各リポジトリーについて、git URLを変更して、次の代わりに新しいホストのいずれかを使用します。
git remote set-url origin <host>:<workplace>/<repo>.git
例: git remote set-url origin personalgit:1password/1password-teams-open-source.git
これで、SSHクライアントは各リポジトリーに使うSSH鍵を認識するようになります。