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_SOCK
とSSH_AGENT_PID
の両方がローカル環境に存在することを確認します。 ssh-add
を使用して、中間サーバーと最終サーバーの秘密鍵をそれぞれ追加します。 ssh-add -l
で追加されていることを確認します。
すべてのサーバーは最新バージョン(OpenSSH 5.3)であり、クライアントはOpenSSH6.2です。
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
ディレクトリの固有の所有権について話すことができますか?