phpseclib SSH2:为什么我的命令不运行?

我正在尝试建立一个用于管理我的Ubuntu托管的Minecraft服务器的Web界面。 我使用屏幕以使控制台可重新访问。 我不明白为什么以下代码不起作用:</ p>

  

$ ssh-&gt; read('quadrplax @ quadrplax-laptop:〜$');

$ ssh-&gt; write(“screen -rd
”);
$ ssh-&gt; write(“stop
”);

</ code> </ pre>

现在,不要问我为什么,但是如果我添加这个无用的代码:</ p>

  

$ randid = rand(0,1000000); \ n $ consolemsg = strval($ randid);

$ ssh-&gt; read('quadrplax @ quadrplax-laptop:〜$');
$ ssh-&gt; write(“screen -rd
”) ; //注意“

$ ssh-&gt; write(“说停止服务器 - ID:”。$ consolemsg。“
”);
echo $ ssh-&gt; read(“[INFO] [ Minecraft-Server] [服务器]停止服务器 - ID:“。$ consolemsg);
$ ssh-&gt; write(”stop
“);

</ code> </ pre>

然后它将能够断开屏幕会话,但页面将在超时之前加载几分钟。 对不起这是多么愚蠢,我找不到任何好的phpseclib指南,它们都是同一指南的副本,不提供任何长篇例子。 我已经能够得到一些工作,例如我的暂停代码以某种方式工作:</ p>

  

$ ssh-&gt; read('quadrplax @ quadrplax-laptop :〜$');
$ ssh-&gt; write(“sudo pm-suspend
”);
$ ssh-&gt; setTimeout(5);
$ output = $ ssh-&gt; read(' #[pP] assword [^:] *:| quadrplax @ quadrplax-computer:〜\ $#',NET_SSH2_READ_REGEX);
$ ssh-&gt; write(“FAKEPASSWORD
”);

</ code > </ pre>

很抱歉格式错误或其他任何内容,第一次来这里。 我很难提交这篇文章。 有人可以帮我解决这个问题吗?</ p>

编辑:修复了复制粘贴错误</ p>
</ div>

展开原文

原文

I'm trying to make a web interface for managing my Ubuntu hosted Minecraft server. I use screen in order to make the console re-accessible. I don't get why the following code does not work:



    $ssh->read('quadrplax@quadrplax-laptop:~$');
    $ssh->write("screen -rd
");
    $ssh->write("stop
");

Now, don't ask me why, but if I add in this useless code:



    $randid=rand(0, 1000000);
    $consolemsg=strval($randid);

    $ssh->read('quadrplax@quadrplax-laptop:~$');
    $ssh->write("screen -rd
"); // note the "
"
    $ssh->write("say Stopping server - ID:".$consolemsg."
");
    echo $ssh->read(" [INFO] [Minecraft-Server] [Server] Stopping server - ID:".$consolemsg);
    $ssh->write("stop
");

Then it will be able to get the screen session disconnected, but the page will then load for minutes before timing out. Sorry for how stupid this is, I can't find any good guides for phpseclib, they all are copies of the same guide and don't give any long examples. I have been able to get some things to work, for example my suspend code somehow works:



    $ssh->read('quadrplax@quadrplax-laptop:~$');
    $ssh->write("sudo pm-suspend
");
    $ssh->setTimeout(5);
    $output = $ssh->read('#[pP]assword[^:]*:|quadrplax@quadrplax-computer:~\$#', NET_SSH2_READ_REGEX);
    $ssh->write("FAKEPASSWORD
");

Sorry for formatting errors or anything, first time here. I had a hard time getting this post to submit. Can someone help me out with this?

Edit: Fixed a copy-paste error

dsjfrkvn818747
dsjfrkvn818747 我不相信$ssh->setTimeout(5);在您发布的最后一个代码段中应该是必需的。至于其余的...idk你可以启用日志记录并发布日志吗?例如。adddefine('NET_SSH2_LOGGING',3);在您的文件的顶部。如果你可以把日志放在pastebin.com上,并在这里发布链接,这将是有帮助的!
大约 6 年之前 回复
douruhu4282
douruhu4282 该报价是复制粘贴错误。在我从不打算删除的实际代码中有一个注释:'//注意“ ”'。
大约 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问