[英]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.