我有三个服务器:(a)、(b)和(c)。
服务器(a)和(c)在authorized_keys文件中具有服务器(b)的公钥。
在从服务器(a)到服务器(b)的ssh连接过程中,我尝试访问服务器(c)。
(a)--->(b) --->(c)
使用:
ssh-agent
ssh -A <command>
失败!带有
权限被拒绝(公钥)
但是使用:
eval `ssh-agent`
ssh-add
ssh -A <command>
成功。
问题出在哪里?
实用程序ssh-agent
单独运行时,对私钥转发没有任何影响,如手册页:中所述
如果给定一个命令(和可选参数),它将作为代理人。当在命令行上给出命令时,代理会自动退出终止
由于您没有提供命令,子流程在ssh-agent
执行开始时终止,这意味着不执行任何操作。
您的解决方案是将command
传递给ssh-agent
,如下所示:
ssh-agent ssh -A <command>