我们以前提到过这个话题,但是很好奇是否有人有关于这个问题的新信息。
我们使用一个“管理服务器”后面访问的多个服务器,所以当我们在SSH中登录时,我们必须先在那里登录,然后从那里登录到我们的目标机器,所以总是至少有2个SSH连接。我们目前在管理服务器上使用端口转发,方法是:它将带我们直接进入幕后感兴趣的服务器,因此我们认为我们正在直接对每个服务器进行ssh‘’ing。
这里的问题是,它需要特定的设置,并且在可以添加/删除服务器的可伸缩环境中,维护非常麻烦。理想情况下,我们可以使用phpseclib并运行命令将ssh放入多台计算机。
是否有人遇到过这种情况,或者从脚本级别获得了解决方案的建议?基本上,我们需要将ssh链和ssh放入机器1,然后机器2从机器1运行命令/与机器2交互。
发布于 2016-02-24 16:49:13
$ssh = new Net_SSH2('machine1');
$ssh->login('user', 'pass');
$ssh->setTimeout(10);
$ssh->enablePTY();
$ssh->exec('ssh machine2');
echo $ssh->read();此时(假设您使用的是RSA身份验证,并且您的私钥在机器上的~/.ssh/id_rsa文件中),您返回的提示应该是机器2。
通过这样做,您也可以连接到machine3:
$ssh = new Net_SSH2('machine1');
$ssh->login('user', 'pass');
$ssh->setTimeout(10);
$ssh->enablePTY();
$ssh->exec('ssh machine2');
echo $ssh->read();
$ssh->exec('ssh machine3');
echo $ssh->read();https://stackoverflow.com/questions/35487676
复制相似问题