Win PHP ssh2_exec未知语法-c

时间:2019-05-30 21:22:54

标签: php ssh php-7 ssh2-exec

我正在开发一个Web应用程序,以将G代码发送到3dprinter。该3dprinter具有Linux堆栈。我可以使用以下命令在Win的Ubuntu应用程序中创建它

ssh user@ip password sendgcode G28

我搜索出的结果表明,登录后,我应该转到/ usr / share / griffin文件夹并执行以下操作:python3 command_util.py,然后键入“ sendgcode xxxxx”。但是我不知道如何在PHP中实现这些步骤。

我试图在PHP中使用ssh2,但连接和身份验证部分仍然有效。但是ssh2_exec无法正常工作,它返回*** Unknown Syntax -c sendgcode G28

<?php
$host='';
$user='';
$passwd='';
//connect to remote server, port 22;
$connection = ssh2_connect($host, 22);
if (!$connection){
  die('connection to '.$host.':22 failed');
}
else{
  echo 'connection OK<br/>';
  if (ssh2_auth_password($connection, $user, $passwd)){
    echo $user.' login OK<br/>';
    //run linux command;
      $command="sendgcode G28";
      $stream = ssh2_exec($connection, $command); 
      //get contents after send command;
      stream_set_blocking($stream, true); 
      if ($stream === FALSE){
        die("command failed");
      }
      else{          
        echo stream_get_contents($stream).'<br/>';
      }
  }
  else{
    die( $user.' login Failed<br/>');
  }
}
?>

我尝试使用如下所示的命令,但它仍返回未知语法-c xxxxx。

<?php
set_include_path('C:/xampp/htdocs/phpseclib1.0.15');
include('Net/SSH2.php');

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

echo $ssh->exec('cd /usr/share/griffin');
echo $ssh->exec('ls -la');
?>

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

只需删除PHP中的'&&'或Python中的'\ n',