php ssh2扩展实现一个交互式的终端---思路

想实现一个web的终端,最开始用的ssh2这个扩展,但是结果只能用exec执行命令,不能达到我想要的效果,我想要的是交互式的终端,之后又找了一个php的包phpseclib用里面的ssh2协议用得很迷…不知道为什么read总是要等很长一段时间,不知道是不是我的姿势不对,暂时的放弃,然后仔细看了一下官网的ss2扩展文档,发现有一个ssh2_shell命令,于是开始研究,感觉可以达到交互式终端的效果,如果再不行…可能得去实现ssh协议了….贴出代码如下

有一点不足的地方就是不能使用select方法来,本来想用swoole_event_add加入监听的=_=,不过现在这样..大不了开一个进程来处理吧…或者再看看还有没有什么其他不错的方法

$connection = ssh2_connect('localhost', 22);
if (!ssh2_auth_password($connection, 'user', '***')) {
    die('error user');
}

$stdio_stream = ssh2_shell($connection);
stream_set_blocking($stdio_stream, true);
if (pcntl_fork()) {
    while ($char = fgetc(STDIN)) {
        fwrite($stdio_stream, $char);
    }
} else {
    while (true) {
        echo(fread($stdio_stream, 10000));
    }
}
点赞
  1. ideasource说道:

    现在解决的怎么样了?

    1. Farmer Farmer说道:

      还是选择用多进程的方式来处理了

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据