簡體   English   中英

使用PHP通過SSH執行Shell命令

[英]Execute a shell command through ssh using PHP

我正在嘗試執行一個簡單的shell命令並將結果打印在網頁上,但結果為空。 以下是我發現的一點代碼,但到目前為止沒有任何效果。

 <?php
            $server = "myserver";
            $username = "myadmin";
            $command = "ps";
            $str = "ssh " .$username. "@" .$server. " " .$command;

            exec($str, $output);

            echo '<pre>';
            print_r($output);
            echo '</pre>';
    ?>

試試phpseclib ,它將起作用。

<?php
    include('Net/SSH2.php');

    $server = "myserver";
    $username = "myadmin";
    $password = "mypass";
    $command = "ps";

    $ssh = new Net_SSH2($server);
    if (!$ssh->login($username, $password)) {
        exit('Login Failed');
    }

    echo $ssh->exec($command);
?>

您在端口號之前缺少-p選項:

$str = "ssh -p $port $username@$server $command";

使用面向對象的解決方案,您可以使用以下命令安裝phpseclib版本2:

composer require phpseclib/phpseclib

然后只需創建您的ssh對象:

$ssh = new SSH2('yourhost');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

在此示例中,我使用了通過用戶名密碼進行的連接,但是您也可以通過ssh-keys進行連接。 如果連接成功,則可以在服務器上執行exec方法以執行命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM