Page 1 sur 1

Connexion ssh depuis php

Posté : 26 août 2014, 23:14
par Theskinline01
Bonjour à tous,
Voila j'ai trouver un script pour le connecter a une machine en ssh et envoyer des commande j'ai essayer de faire quelle que teste mais quand je paramètre le scripte et je le lance, la page se charge quelle temps puis :Page Web inaccessible

Je ne comprend pas je peut me connecter via putty en mais pas sur mon scripte ps: tout cela est en local
Je suis en version 5.4.31 de php
<?php

App::uses('AppController','Controller');
class MachinesController extends AppController{

    

	

// ssh protocols
// note: once openShell method is used, cmdExec does not work



  private $host = '***.***.*.*';
  private $user = 'root';
  private $port = '22';
  private $password = '*********;
  private $con = null;
  private $shell_type = 'xterm';
  private $shell = null;
  private $log = null;

  function __construct($host,$port) {

    
     $this->con  = ssh2_connect($this->host, $this->port);
     if( !$this->con ) {
       $this->log .= "Connection failed !"; 
       debug($this->con);
     }
     

  }

  function admin_index( $user,$password) {

     if( $user!='' ) $this->user  = $user;
     if( $password!='' ) $this->password  = $password;

     if( !ssh2_auth_password( $this->con, $this->user, $this->password ) ) {
       $this->log .= "Authorization failed !"; 
     }

  }

  function openShell( $shell_type = '' ) {

        if ( $shell_type != '' ) $this->shell_type = $shell_type;
    $this->shell = ssh2_shell( $this->con,  $this->shell_type );
    if( !$this->shell ) $this->log .= " Shell connection failed !";

  }

  function writeShell( $command = '' ) {

    fwrite($this->shell, $command."\n");

  }

  function cmdExec( ) {

        $argc = func_num_args();
        $argv = func_get_args();

    $cmd = '';
    for( $i=0; $i<$argc ; $i++) {
        if( $i != ($argc-1) ) {
          $cmd .= $argv[$i]." && ";
        }else{
          $cmd .= $argv[$i];
        }
    }
    echo $cmd;

        $stream = ssh2_exec( $this->con, $cmd );
    stream_set_blocking( $stream, true );
    return fread( $stream, 4096 );

  }

  function getLog() {

     return $this->log; 

  }

}
?>
Merci par avance :)

Re: Connexion ssh depuis php

Posté : 27 août 2014, 08:56
par Aureusms
On dirait que la page est ouverte mais pas refermée pour un autre usage.
Est ce que tu peux vérifier si la page est restée ouverte dans le navigateur en essayant de l'ouvrir avec bloc note par exemple ?

Je vois que tu utilises stream_set_blocking (qui peut bloquer la page) dans la fonction cmdExec lors d'une exécution. Est ce que cela pourrait venir de là ?