Commande ssh via php

Fermé
jejecoco - Modifié par mamiemando le 18/10/2012 à 10:41
mamiemando Messages postés 33591 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 mars 2025 - 18 oct. 2012 à 10:46
Bonjour,

Je suis un jeune étudiant en programmation. Pour mon stage il faut que j'arrive a passer une commande via la fonction ssh2 de PHP. J'ai essayé un code et je reçois une page vide.

Toute aide me serait précieuse.

Mon code est le suivant :

<?php 

$host= '122.65.435.55'; 
$user= 'root'; 
$port= '22'; 
$password= 'root'; 
$con= 'null' 
function ssh($host, $user, $password, $command) 
{ 
    if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist"); 
    if(!($con = ssh2_connect($host, 22))){ 
        echo "échec connexion\n"; 
    } else { 
        if(!ssh2_auth_password($con, $user, $password)) { 
            echo "échec authentification\n"; 
        } else { 
            // execute a command 
            if (!($stream = ssh2_exec($con, $command ))) { 
                echo "échec de l'exécution de la commande\n"; 
            } else { 
                // collect returning data from command 
                stream_set_blocking($stream, true); 
                $data = ""; 
                while ($buf = fread($stream,4096)) { 
                    $data .= $buf; 
                } 
                fclose($stream); 
                return $data; 
            } 
        } 
    } 
} 

$command = 'php -m |grep ssh2'; 
$ret = ssh($host, $user, $password, $command); 
echo '<pre>' . $ret . '</pre>'; 

?>
A voir également:

1 réponse

mamiemando Messages postés 33591 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 mars 2025 7 834
Modifié par mamiemando le 18/10/2012 à 10:47
Et que donne ton script quand tu l'exécutes ?
Sinon ce serait pas mal que ta fonction ssh() prennent en paramètre le port, même si ça ne résoudra pas le problème.

Par ailleurs, as-tu testé de te connecter en ssh à ton serveur.

Ah et sinon quelques points importants :
- en IPv4 les 4 nombres sont compris entre 0 et 255
- heureusement que tu t'es planté dans l'adresse IP que tu donnes, sinon n'importe qui aurait pu se connecter en ssh sur cette machine et faire n'importe quoi dessus, donc veille à anonymiser les éléments sensibles quand tu postes sur un forum.
- n'utilise jamais de mots de passe triviaux
- ne mets jamais de mot de passe en dur et en clair dans ton code, lis-le à partir d'un fichier tiers avec des droits d'accès restreints, surtout qu'en ssh, il existe d'autre moyen de se connecter (les clés ssh par exemple).
http://prendreuncafe.com/blog/post/2005/08/29/262-installer-sa-cle-ssh-sur-un-serveur-distant

Bonne chance
0

Discussions similaires