Ssh PHP输出在终端中正确,但在浏览器中不正确
我刚开始在php中使用shell_exec,并坚持到了这一点。 下面是我的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
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) ""