Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh PHP输出在终端中正确,但在浏览器中不正确_Ssh_Shell Exec_Php 7.2_Sshpass - Fatal编程技术网

Ssh PHP输出在终端中正确,但在浏览器中不正确

Ssh PHP输出在终端中正确,但在浏览器中不正确,ssh,shell-exec,php-7.2,sshpass,Ssh,Shell Exec,Php 7.2,Sshpass,我刚开始在php中使用shell_exec,并坚持到了这一点。 下面是我的php脚本,它正确地运行在终端中,但不在浏览器中 <?php echo shell_exec("ssh -tq root@192.168.31.5 \"whoami\""); ?> 但在浏览器中, 有趣的是,whoami就像一个符咒 <?php echo shell_exec("whoami"); ?> 浏览器中的输出(CHROME):- 这是因为在CLI中,您是以SSH的用户身份

我刚开始在php中使用shell_exec,并坚持到了这一点。 下面是我的php脚本,它正确地运行在终端中,但不在浏览器中

<?php
  echo shell_exec("ssh -tq root@192.168.31.5 \"whoami\"");
?>
但在浏览器中,

有趣的是,whoami就像一个符咒

<?php
    echo shell_exec("whoami");
?>
浏览器中的输出(CHROME):-


这是因为在CLI中,您是以SSH的用户身份执行脚本的(在本例中为
root
),但在浏览器中,执行脚本的是您的
WebServer
(apache/nginx)。要在浏览器中将root作为输出,您可能需要查看
ob\u start ob\u get\u contents ob\u flush
函数。

这是因为在CLI中,您是以SSH的用户身份执行脚本(在您的情况下是
root
),但在浏览器中,执行脚本的是您的
WebServer
(apache/nginx)。要在浏览器中获得root作为输出,您可能需要查看
ob\u start ob\u get\u contents ob\u flush
函数。

但我正在以root用户身份通过ssh登录到其他计算机。问题是,当我在当前计算机/服务器上执行脚本时,它可以正常工作,但在其他计算机/服务器上使用ssh的相同命令不起作用。但我是以root用户身份通过ssh登录到其他计算机的。问题是,当我在当前计算机/服务器上执行脚本时,它可以正常工作,但在其他计算机/服务器上使用ssh的相同命令不起作用。
<?php
    echo shell_exec("whoami");
?>
<?php
  ob_start();
  echo shell_exec("ssh -tq root@192.168.31.5 \"whoami\"");
  $out1 = ob_get_contents();
  ob_end_clean();
  var_dump($out1);
?>
php /var/www/html/monitor/ssh.php 
string(6) "root"
string(0) ""