.ssh / configのIdentityFileディレクティブを使用して転送されたキーを指定することは可能ですか?
実稼働サーバーでCapistrano / GITを介してコードを展開しようとしたときに、この奇妙なことに遭遇しました。個人用と仕事用の両方のGITキーが常にSSHエージェントにロードされ、個人用キーが最初にエージェントに追加されたことが起こりました。Capistranoでデプロイする場合、エージェント転送を使用するため、ホストが「git pull」操作を認証しようとしたときに、次のエラーで失敗しました。
エラー:「一部のレポ」へのアクセス許可が「ユーザー」に拒否されました。
なぜなら、適切なキー(後でsshエージェントに付属)を試す前に、個人のgitキーを使用して認証を試み、アクセスする権限のない外部リポジトリにアクセスしていると想定していたためです。個人ユーザーにすべての作業リポジトリへのアクセスを許可することもできますが、ローカルマシンでは、.ssh / configで次のようにカスタムドメインを定義することでこの問題を回避できます。
ホスト personal.github.com
ホスト名 github.com
ユーザー git
IdentityFile〜 / .ssh / some_key
ホスト work.github.com
ホスト名 github.com
ユーザー git
IdentityFile〜 / .ssh / some_other_key
そして、このようにgitは決して混乱しません。私のプロダクションボックスで転送されたキーの.ssh / configルールを作成して、新しいコードをプルするときに使用するキーを常に認識できるようにすることは可能ですか?基本的に私ができるようにしたい:
ホスト work.github.com
ホスト名 github.com
ユーザー git
IdentityFile some_forwarded_key
ありがとう!