質問: 異なるユーザー名を介したエージェント転送(gitと展開) このクエリはgitに直接関連していませんが、gitでサポートされているトランスポートの1つがsshであり、エージェント転送を使用しようとしているため、説明を求めたいと思いました(manページで失望しました)capistranoを使用してソフトウェアの展開を自動化しようとしていますが、いくつかの問題点(既知のホストの事前シード、展開前など)を一時停止することができましたが、次の状況が残ります。私のチームは、自分自身、個々のユーザーアカウントとしてサーバーにログインし、全員がdevelopersグループに属し、umaskは002です。上記のいずれも実際には関係ありませんが、目的は、スーパーユーザーの特権を必要とせずに、チームが常に自分たちのように機能できるようにすることです。次のexample.comを使用してサーバー~/.ssh/configに接続します。host example.com user beaks forwardagent yes identityfile ~/.ssh/id_rsa_business 最初のログインは完全に機能し、ssh example.comは私のユーザーアカウントへの接続を開き、すべてが正常です。問題は次のステップで発生します。git ls-remote git@github.com:project/repository.git これは前述のgit + sshトランスポート層を使用しています(上記のリンクを参照)-通常は転送エージェントキーを使用する必要があります(env | grep ssh_auth_sockで存在することを確認しました)応答は単純な「認証に失敗しました(公開鍵)もう一方の端が予期せずハングアップしました」です。共有gitとしてgithub.comに近づくと、ユーザーのエージェントが使用されていないためと思われます。ユーザー。また、ec2の奇妙さ(セキュリティポリシーなど)を除外することはできませんが、その場合、タイムアウトまたは接続障害が予想されます。私はgithub.comを押していること、そして私のエージェントがbeaksユーザーに私のgitキーを提供していないため、彼らが私を入れていないことをかなり確信しています。私が何かを逃したならば、どんな追加情報でも喜んで追加します。
回答: ssh-agentが実行されていることを確認するだけでは不十分です。必要なキーが存在するかどうかを確認してくださいssh-add -lこのキーが他のホストから機能することを確認しましたか?そのシステムでssh-add -lは何を印刷しますか?git_trace=1 git ls-remote ...を実行することもでき、実行したsshコマンドを出力します。 gitを画像に取り込む前に、手動でsshコマンドを実行し、それを機能させることができます。