首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHPSeclib的SSH链接(ssh机器1,机器1->机器2,交互)

使用PHPSeclib的SSH链接(ssh机器1,机器1->机器2,交互)
EN

Stack Overflow用户
提问于 2016-02-18 16:55:24
回答 1查看 92关注 0票数 1

我们以前提到过这个话题,但是很好奇是否有人有关于这个问题的新信息。

我们使用一个“管理服务器”后面访问的多个服务器,所以当我们在SSH中登录时,我们必须先在那里登录,然后从那里登录到我们的目标机器,所以总是至少有2个SSH连接。我们目前在管理服务器上使用端口转发,方法是:它将带我们直接进入幕后感兴趣的服务器,因此我们认为我们正在直接对每个服务器进行ssh‘’ing。

这里的问题是,它需要特定的设置,并且在可以添加/删除服务器的可伸缩环境中,维护非常麻烦。理想情况下,我们可以使用phpseclib并运行命令将ssh放入多台计算机。

是否有人遇到过这种情况,或者从脚本级别获得了解决方案的建议?基本上,我们需要将ssh链和ssh放入机器1,然后机器2从机器1运行命令/与机器2交互。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 16:49:13

代码语言:javascript
复制
$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:

代码语言:javascript
复制
$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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35487676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档