web-dev-qa-db-ja.com

sshエージェントの転送が「認証エージェントへの接続を開くことができませんでした」で失敗する

OpenSSHクライアントのエージェント転送オプション(Could not open a connection to your authentication agent)を使用して中間サーバーから3番目のサーバーに接続しようとすると、-Aエラーメッセージが表示されます。中間サーバーへの最初の接続は、ssh-agentにロードされたキーを使用してスムーズに行われます。最終サーバーに接続しようとすると、エラーメッセージが表示されます。

私のOpenSSHクライアントはForwardAgent yes~/.ssh/configで転送できるように設定されており、中間サーバーのデーモンの構成ファイルにはAllowAgentForwarding yesがあります。クライアント構成は、システムレベルのファイルによって上書きされません。

環境変数が設定されていないことに起因するエラーを回避するために、ターミナルマルチプレクサを使用していません。エージェントを実行するには、exec ssh-agent zshを使用して、SSH_AUTH_SOCKSSH_AGENT_PIDの両方がローカル環境に存在することを確認します。 ssh-addを使用して、中間サーバーと最終サーバーの秘密鍵をそれぞれ追加します。 ssh-add -lで追加されていることを確認します。

すべてのサーバーは最新バージョン(OpenSSH 5.3)であり、クライアントはOpenSSH6.2です。

6
chb

Googleを使用して解決策を見つけようとしたり、manページを読んだり、SSHで人気のある本を調べたりするのに多くの時間を費やしたので、これをここに投稿します。

問題を見つけるための鍵は、デバッグ出力を熟考することでした。

debug1: Remote: Agent forwarding disabled: mkdtemp() failed: Permission denied

中間マシンは、AWSスタックを使用するクラウドプロバイダーによってホストされる仮想サーバー(RHEL 6.4)です。説明できない理由により、これは/tmpディレクトリのアクセス許可が設定されたものです。

drwxr-x--- 19  727  727  4096 Nov 28 05:30 tmp

/etc/passwdをgrepしているIDが727のユーザーが見つかりませんでした。

このように権限を修正すると、私の問題は解決しました。

Sudo chown 0:0 /tmp
Sudo chmod 1777 /tmp

誰かが/tmpディレクトリの固有の所有権について話すことができますか?

12
chb