さまざまな ssh キーを使用して、さまざまなプロジェクトを bitbucket から複製する方法を見つけようとしています。ssh_config を使用してみましたが、単一の特定のホストの接続に対してのみ別の ssh キーを定義することができました。
私が達成したいことは
bitbucket.org/myteam1/myprojectのキー A
と
bitbucket.org/myteam2/myotherproject のキー B
これで私を助けることができますか?
最後に、私にとっての最善の解決策は、オプションを使用し、その-e sshcommand
中にオプションを使用して、-i key
必要な秘密鍵を指定することであることがわかりました。
ssh-agent を使用する最も簡単な方法です。ssh-agent を実行しているときに、すべてのキーを追加すると、1 つが機能するまでそれぞれのキーが試行されます。あなたのOSはすでにssh-agentを実行している可能性が非常に高いので、試してみてください
ssh-add /path/to/key1
ssh-add /path/to/key2
次に、接続しようとすると、いずれかのキーが機能する場合に.
eval $(ssh-agent)
次に、2 つのキー ファイルを追加します。
何らかの理由で ssh-agent を使用することに耐えられない場合は、少しトリッキーな.ssh/config
ファイルを使用して回避策を見つけました。このようなもの:
Host myteam1.bitbucket.org
Hostname bitbucket.org
HostKeyAlias bitbucket.org
IdentityFile ~/.ssh/keyA
Host myteam2.bitbucket.org
Hostname bitbucket.org
HostKeyAlias bitbucket.org
IdentityFile ~/.ssh/keyB
hg clone ssh://hg@myteam2.bitbucket.org/myteam2/myproject
次に、 sshなどの偽のホスト名を使用して URL を複製またはプッシュすると、実際のホスト名と正しいキーが交換されます。
しかし、実際には、ssh-agent
代わりに使用してください。
リポジトリ hgrc レベルでキーをオーバーライドできます
Mercurial の構成ファイルを参照してください。