运行ssh命令whit php

时间:2015-09-25 11:40:56

标签: php linux ssh command debian

好的,我得到了这段代码

<?php
    $host = "MYSERVERIP";
    $user = "root";
    $password = "123456";
    $command = $_GET["command"];

    if($command != null) {
        //HERE I WANT THE PHP TO SEND THE COMMAND TO THE SERVER
    } else {
        echo"No command were given!";
    }
?>

我希望它能像这样工作:让我说我去MYSERVERIP/sendcommand.php?command=reboot 然后我希望我的服务器重启,我该怎么做?我的服务器正在运行debian。

我试图通过阅读http://php.net/manual/en/function.ssh2-exec.php来理解它,但那个dosnt让我在某个地方:/

4 个答案:

答案 0 :(得分:2)

如果你想在同一台服务器上运行php运行 - 只需使用 exec shell_exec

答案 1 :(得分:1)

是你链接上的一个例子......

与你的东西混合看起来像

$host = "MYSERVERIP";
$user = "root";
$password = "123456";
$command = $_GET["command"];

if($command != null) {
    $connection = ssh2_connect('shell.example.com', 22);
    ssh2_auth_password($connection, 'username', 'password');

    $stream = ssh2_exec($connection, $_GET["command"]);
} else {
    echo"No command were given!";
}

假设服务器接受这样的命令

答案 2 :(得分:0)

如果您的文件与php文件是同一台服务器,则可以使用

exec() or shell_exec( string $cmd )

如果不是同一台服务器,则不可能,我所知道的全部

答案 3 :(得分:0)

如果要在运行PHP的服务器之外的其他服务器上发出命令,则需要从ssh2_connect开始。

如果您想在服务器上本地发布命令,请先阅读program execution

我建议你密切注意这方面的安全方面。 您还应该知道,如果您使用的是共享托管环境,则可能会禁用这两个选项。