Page 1 sur 2

Commande ssh et php

Posté : 29 juil. 2013, 14:56
par WENKz
Bonjour je souhaite lancer un serveur de jeux via une page php que j'ai faite mais j'ai un peu de difficulté avec les variable php pour les inclure dans la commande ssh pouvez vous m'aider ?
voici ma page test
<?php
function ssh($command){
    $host = "*******";
    $port = "*******";
    $login = "*****";
    $mdp = "*****";
    if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
    if(!($con = ssh2_connect($host, $port))){
        echo "échec connexion\n";
    } else {
        if(!ssh2_auth_password($con, $login, $mdp)) {
            echo "échec authentification\n";
        } else {
            if (!($stream = ssh2_exec($con, $command ))) {
                echo "échec de l'exécution de la commande\n";
            } else {
                stream_set_blocking($stream, true);
                $data = "";
                while ($buf = fread($stream,4096)) {
                    $data .= $buf;
                }
                fclose($stream);
                return $data;
            }
        }
    }
}
?>
<h3>Ajouter un serveur</h3>
<div class="text">Completez le formulaire suivant pour ajouter un serveur :</div>
<form method="post">
	<fieldset>
		<p><label>Alias :</label><input type="text" class="text-medium" name="alias" /></p>
		<p><label>Type :</label><select name="type">
		<option value="1">Serveur de jeu</option>
		<option value="2">Serveur vocal</option>
		</select></p>
	</fieldset>
	<fieldset>
		<p><label>Exécutable du serveur :</label><input type="text" class="text-medium" name="bin" /></p>
		<p><label>Répertoire de l'éxécutable :</label><input type="text" class="text-medium" name="path" /></p>
		<p><label>Options de lancement :</label><textarea name="options"></textarea></p>
		<p><label>Nom du screen :</label><input type="text" class="text-medium" name="screen" /></p>
	</fieldset>
			<button type="submit" name="start" class="button"><img src="icones/tick.png"> Ajouter ce serveur</button> <button type="reset" class="button negative"><img src="icones/cross.png"> Reset des champs</button>
	
</form>

<?php
if (isset($start)) {
   $bin=$_POST['bin'];
   $path=$_POST['path'];
   $screen=$_POST['screen'];
} else {
   $start = "cd ". $path . " && screen -AmdS " . $name . " ./" . $bin . " " . $options;
}




?>

merci et bonne journée !

Re: Commande ssh et php

Posté : 29 juil. 2013, 20:05
par moogli
salut,

qu'est ce que ne sais pas faire ?

il y a tous ce dont tu a besoin dans ce code.


@+

Re: Commande ssh et php

Posté : 30 juil. 2013, 14:14
par WENKz
béh j'ai un message d'erreur


[Mon Jul 29 14:47:14 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: path in /var/www/clients/client3/web5/web/dev/panel/test.php on line 56, referer:
[Mon Jul 29 14:47:14 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: name in /var/www/clients/client3/web5/web/dev/panel/test.php on line 56, referer:
[Mon Jul 29 14:47:14 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: bin in /var/www/clients/client3/web5/web/dev/panel/test.php on line 56, referer:
[Mon Jul 29 14:47:14 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: options in /var/www/clients/client3/web5/web/dev/panel/test.php on line 56, referer:

ou ai-je loupé mes varibale je comprends pas ..

Bonne journée !!

Re: Commande ssh et php

Posté : 30 juil. 2013, 15:24
par WENKz
<?php

        $bin = $_POST['bin'];
	$path = $_POST['path'];
	$options = $_POST ['options'];
	$screen = $_POST['screen'];
	$start = $_POST['start'];

if (isset($start)) {
   $start = "cd ". $path . " && screen -AmdS " . $screen . " ./" . $bin . " " . $options;
}


?>
comme cela peut etre ? je n'ai plus de message d'erreur mais le screen ne ce créé pas ...

j'ai essayé
$start = "screen -AmdS " . $screen ;
pour voir si il ya création de screen mais rien du tout :(

Re: Commande ssh et php

Posté : 30 juil. 2013, 16:23
par WENKz
utiliser pour le ssh2
<?php
$connection = ssh2_connect('exemple.com', 21);
ssh2_auth_password($connection, 'user', 'motdepasse);
$auth = ssh2_auth_password($shell, $user, $password);
?>
et mes variable de cette façon ?
<?php

    $bin = $_POST['bin'];
	$path = $_POST['path'];
	$alias = $_POST['alias'];
	$options = $_POST ['options'];
	$screen = $_POST['screen'];
	$start = "screen -AmdS " . $screen;

if (isset($_POST['start'])) {
   //$start = "cd ". $path . " && screen -AmdS " . $alias . " ./" . $bin . " " . $options;
   echo ssh2_exec($start);
}


?>

sinon toujours rien ...

Re: Commande ssh et php

Posté : 30 juil. 2013, 19:09
par moogli
est ce qu'il y a un log des actions ?
as tu essayé la ligne de commande généré ($start) depuis un client ssh (même utilisateur) ?

Est ce que la connexion ssh est correcte ?


@+

Re: Commande ssh et php

Posté : 31 juil. 2013, 09:08
par WENKz
Comment effectuer la commande dans putty directement alors qu'il y a des variable php ? ... sinon oui mon "cd game/StarMade && screen -AmdS Starwars && ./StarMade-dedicated-server-linux.sh" fonctionne

Re: Commande ssh et php

Posté : 31 juil. 2013, 09:49
par WENKz
et lorsque je test mon formulaire j'ai ces processus qui s'ajoute

web5 12003 0.0 0.0 12368 892 ? Ss 09:45 0:00 /usr/lib/openssh/sftp-server
web5 12056 0.0 0.0 70508 1616 ? S 09:46 0:00 sshd: domaine-quentin@notty
web5 12057 0.0 0.0 12368 888 ? Ss 09:46 0:00 /usr/lib/openssh/sftp-server


edit faut que je pense a regarder plus souvent les logs error

[Wed Jul 31 09:47:25 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Warning: ssh2_auth_password() expects parameter 1 to be resource, null given in /var/www/clients/client3/web5/web/dev/panel/test.php on line 4, referer:
[Wed Jul 31 09:47:25 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Warning: ssh2_exec() expects at least 2 parameters, 1 given in


une erreur de ma part ? mes login son bon ... je vais essayé avec les login root au cas ou ....



Edit !

bon je me suis pas mis en rout j'ai juste modifié le if (isset

if (isset($_POST['start'])) {
   //$start = "cd ". $path . " && screen -AmdS " . $alias . " ./" . $bin . " " . $options;
   echo ssh2_exec($connection ,$start);
}
Par contre maintenant j'ai cette erreur WTF quoi ..



[Wed Jul 31 10:01:17 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined index: bin in /var/www/clients/client3/web5/web/dev/panel/test.php on line 29
[Wed Jul 31 10:01:17 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined index: path in /var/www/clients/client3/web5/web/dev/panel/test.php on line 30
[Wed Jul 31 10:01:17 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined index: alias in /var/www/clients/client3/web5/web/dev/panel/test.php on line 31
[Wed Jul 31 10:01:17 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined index: options in /var/www/clients/client3/web5/web/dev/panel/test.php on line 32
[Wed Jul 31 10:01:17 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined index: screen in /var/www/clients/client3/web5/web/dev/panel/test.php on line 33
[Wed Jul 31 10:01:20 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: shell in /var/www/clients/client3/web5/web/dev/panel/test.php on line 4, referer:
[Wed Jul 31 10:01:20 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: user in /var/www/clients/client3/web5/web/dev/panel/test.php on line 4, referer:
[Wed Jul 31 10:01:20 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Notice: Undefined variable: password in /var/www/clients/client3/web5/web/dev/panel/test.php on line 4, referer:
[Wed Jul 31 10:01:20 2013] [warn] [client 93.95.60.226] mod_fcgid: stderr: PHP Warning: ssh2_auth_password() expects parameter 1 to be resource, null given in /var/www/clients/client3/web5/web/dev/panel/test.php on line 4,



et sur ma page test.php j'ai Resource id #2 qui apparaît ..


Image

Re: Commande ssh et php

Posté : 01 août 2013, 09:35
par WENKz
Un petit up ?

Re: Commande ssh et php

Posté : 02 août 2013, 08:47
par WENKz
Personne n'a de solution pour moi ?

Re: Commande ssh et php

Posté : 02 août 2013, 13:29
par Mazarini
$bin = $_POST['bin'];
$path = $_POST['path'];
$alias = $_POST['alias'];
$options = $_POST ['options'];
$screen = $_POST['screen'];
Les variables comme $_POST['bin'] ne sont pas définis. Est ce $_GET['bin'] ? Ca dépend de ton formulaire, s'il fait du get ou du post. Ou s'il n'y a pas de champ bin dans le formulaire.

Les variables $shell,... ne sont pas initialisées

Re: Commande ssh et php

Posté : 02 août 2013, 14:06
par WENKz
mon formulaire
<h3>Ajouter un serveur</h3>
<div class="text">Completez le formulaire suivant pour ajouter un serveur :</div>
<form method="post">
        <fieldset>
                <p><label>Alias :</label><input type="text" class="text-medium" name="alias" /></p>
                <p><label>Type :</label><select name="type">
                <option value="1">Serveur de jeu</option>
                <option value="2">Serveur vocal</option>
                </select></p>
        </fieldset>
        <fieldset>
                <p><label>Exécutable du serveur :</label><input type="text" class="text-medium" name="bin" /></p>
                <p><label>Répertoire de l'éxécutable :</label><input type="text" class="text-medium" name="path" /></p>
                <p><label>Options de lancement :</label><textarea name="options"></textarea></p>
                <p><label>Nom du screen :</label><input type="text" class="text-medium" name="screen" /></p>
        </fieldset>
                        <button type="submit" name="start" class="button"><img src="icones/tick.png"> Ajouter ce serveur</button> <button type="reset" class="button negative"><img src="icones/cross.png"> Reset des champs</button>
        
</form>

Re: Commande ssh et php

Posté : 02 août 2013, 14:13
par WENKz
Je comprends pas $_POST et sensé récupérer dans mon formulaire non ?

Re: Commande ssh et php

Posté : 02 août 2013, 14:17
par Mazarini
Peut être en ajoutant id en plus de name dans les attributs des balises input et submit ?
Je mets toujours les 2 sans me poser de question par habitude et je ne sais pas lequel sert pour PHP.

Ou ajoute value="" pour les input ?

Tu peux aussi mettre method="get" pour voir si les paramètres ressortent bien dans l'url.

Re: Commande ssh et php

Posté : 02 août 2013, 14:32
par WENKz
j'ai bien test.php?alias=&type=1&bin=&path=&options=&screen=test&go=

mon soucis viendrais maintenant du ssh ?
<?php
$connection = ssh2_connect(mondomaine.fr', 21);
ssh2_auth_password($connection, 'quentin', '132soleil');
?>