1

是否可以在远程计算机(不是本地主机)上执行 shell 命令?例如像这样的事情

$output = shell_exec("unzip filename.zip");

您可以假设您拥有远程计算机上用户帐户的登录凭据,以及远程 root 用户名、密码和 cpanel 远程访问密钥。

4

3 回答 3

1

如果您的意思是“不是客户端计算机”中的“远程计算机”,那么答案是肯定的;通过 PHPexec函数运行的命令将在 Web 服务器上执行。

如果您的意思是“不是网络服务器”,那么答案是稍微有点模糊的“是”。您只能在运行 PHP 的服务器上直接执行命令。但是,这些命令随后可以通过 SSH 等机制在远程机器上运行其他命令。因此,例如,如果您的 Web 服务器对远程计算机具有无密码 ssh 访问权限(这是一个非常糟糕的主意),这将起作用:exec('ssh otherhost someremotecommand');. 适合您的解决方案取决于您所需的用途。

于 2010-09-19T07:35:31.747 回答
1

我知道这个问题已经很老了,但是对于这个问题的观众来说。

您也可以使用 ssh2_exec。http://php.net/manual/en/function.ssh2-exec.php

<?php

$ip = 'ip_address'; 
$user = 'username'; 
$pass = 'password'; 

$connection = ssh2_connect($ip); 
ssh2_auth_password($connection,$user,$pass); 
$shell = ssh2_shell($connection,"bash");

?>
于 2013-02-23T15:25:37.450 回答
0

是的,无需更改任何代码即可。但是,如果您的服务器将 PHP 置于安全模式(较少的共享主机计划经常这样做),您可能无法做到这一点。

提示:您可以使用此速记来获取命令的输出:

$output = `command here`
于 2010-09-19T07:01:03.153 回答