使用PHPSeclib的SSH链接(SSH机器1,机器1->;机器2,交互)
我们以前提到过这个话题,但很好奇是否有人有关于这个问题的新信息 我们使用在“管理服务器”后面访问的多个服务器,因此,当我们使用SSH时,我们必须首先登录到那里,然后从那里登录到我们的目标机器,因此始终至少有2个SSH连接。目前,我们在管理服务器上通过使用:使用端口转发,这将直接将我们带到后台感兴趣的服务器,因此我们认为我们直接ssh到每个服务器 这里的问题是,它需要特定的设置,并且在可添加/删除服务器的可扩展环境中,维护非常繁琐。理想情况下,我们可以使用phpseclib将ssh连接到多台机器并运行命令 有没有人遇到过这种情况,或者从脚本级别对解决方案提出了建议?基本上,我们需要ssh链和ssh到机器1,然后从机器1到机器2,并运行命令/与机器2交互使用PHPSeclib的SSH链接(SSH机器1,机器1->;机器2,交互),ssh,chaining,phpseclib,Ssh,Chaining,Phpseclib,我们以前提到过这个话题,但很好奇是否有人有关于这个问题的新信息 我们使用在“管理服务器”后面访问的多个服务器,因此,当我们使用SSH时,我们必须首先登录到那里,然后从那里登录到我们的目标机器,因此始终至少有2个SSH连接。目前,我们在管理服务器上通过使用:使用端口转发,这将直接将我们带到后台感兴趣的服务器,因此我们认为我们直接ssh到每个服务器 这里的问题是,它需要特定的设置,并且在可添加/删除服务器的可扩展环境中,维护非常繁琐。理想情况下,我们可以使用phpseclib将ssh连接到多台机器并
$ssh = new Net_SSH2('machine1');
$ssh->login('user', 'pass');
$ssh->setTimeout(10);
$ssh->enablePTY();
$ssh->exec('ssh machine2');
echo $ssh->read();
此时(假设您正在使用RSA身份验证,并且您的私钥位于计算机上的~/.ssh/id\u RSA
文件中),返回的提示应该是计算机2
您也可以通过以下操作连接到机器3:
$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();
此时(假设您正在使用RSA身份验证,并且您的私钥位于计算机上的~/.ssh/id\u RSA
文件中),返回的提示应该是计算机2
您也可以通过以下操作连接到机器3:
$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();