Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/03/2008, à 22:38

kneiss

libssh2 PHP, plusieurs commandes

Bonjour à tous,

Je souhaiterai vous demander un petite chose certainement facile, mais qui le devient assez compliquée quand on ne trouve pas là solution !

En effet, j'ai bien installé libssh2 et php5, tout fonctionne puisque mon script php qui envoi des commandes fonctionne très bien.

Je cherche à modifier le mot de passe d'un login avec la commande via la commande exec "passwd login", mais je n'arrive pas à répondre à la question que me pose le serveur... j'ai tout essayé mais rien n'y fait...

- Insérer une 2e commande exec avec le password...
- $stream = ssh2_exec($connection, 'passwd julien', 'test');
- $stream = ssh2_exec($connection, 'passwd julien && test');

Après celà, rien n'y fait !

En fait, j'aimerai répondre aux questions du serveur automatiquement avec mon script php dans le but d'une petite interface web.

Quelqu'un pourrait-il m'aider à modifier mon code php pour faire celà SVP ?

<?php
$connection = ssh2_connect('host', 22);
ssh2_auth_password($connection, 'login', '********');
$stream = ssh2_exec($connection, 'passwd login', 'test', 'test');
?>

Je vous remercie à tous par avance,
Cordialement,
Kneiss

Hors ligne

#2 Le 05/03/2008, à 23:12

benbugohit

Re : libssh2 PHP, plusieurs commandes

vu sur http://theserverpages.com/php/manual/en … -shell.php :

<?php

$con=ssh2_connect('192.168.0.1', 22);
ssh2_auth_password($con, "user", "password");
$shell=ssh2_shell($con, 'xterm');
fwrite( $shell, "passwd login\n");
fwrite( $shell, "mdp courant\n");
fwrite( $shell, "test\n");
fwrite( $shell, "test\n");

?>

donc remplace par :

<?php

$con=ssh2_connect('192.168.0.1', 22);
ssh2_auth_password($con, "user", "password");
$shell=ssh2_shell($con, 'xterm');
fwrite( $shell, "cd /dir_one\n");
fwrite( $shell, "ls -la\n");
fwrite( $shell, "cd /dir_two\n");
fwrite( $shell, "ls -la\n");

?>

####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#3 Le 05/03/2008, à 23:35

kneiss

Re : libssh2 PHP, plusieurs commandes

Merci pour votre réponse rapide.

J'ai essayé votre script, mais mon mot de passe n'a pas changé en fait.

J'ai essayé en retirant également la ligne suivante:
fwrite( $shell, "mdp courant\n");

Ou en retirant le 'xterm', mais rien n'y fait :-(

PS: J'ai bien attribué les bons user password hostname et passwd login

Hors ligne

#4 Le 05/03/2008, à 23:46

benbugohit

Re : libssh2 PHP, plusieurs commandes

j'avoue que je seche, et apparemment, cette extension ssh2 php est en constant développement, alors, essayez de "jouer" avec ssh2_fetch_stream et les sorties/entrées standard... ou voir si on peut le faire par le biais d'un script bash dans un premier temps...


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#5 Le 06/03/2008, à 00:00

benbugohit

Re : libssh2 PHP, plusieurs commandes

alors la commande :

$stream = ssh2_exec($connection, 'echo login:mdp |chpasswd');

à exécuter en tant que root !


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#6 Le 06/03/2008, à 13:16

kneiss

Re : libssh2 PHP, plusieurs commandes

J'ai essayé mais ça ne fonctionne pas non plus, pourtant j'ai bien la commande chpasswd sur ma Debian...

Hors ligne

#7 Le 06/03/2008, à 13:45

benbugohit

Re : libssh2 PHP, plusieurs commandes

parce que cette commande doit etre faite en tant que root


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#8 Le 06/03/2008, à 18:13

kneiss

Re : libssh2 PHP, plusieurs commandes

C'est impec benbugohit, merci !

Il me reste une dernière chose pour mon panel admin, ce serait de créer un compte...

En fait, j'ai essayé la commande suivante:

<?php
$connection = ssh2_connect('host', 22);
ssh2_auth_password($connection, 'login', '********');
$stream = ssh2_exec($connection, 'useradd -m -p password login');
?>

Cette commande fonctionne parfaitement bien, seulement useradd ne crypte pas les passwords.

Y'aurait-il un moyen de crypter les passwords comme la commande adduser avec une autre commande (adduser pose des questions, donc impossible je crois) ?

Merci d'avance !

Hors ligne

#9 Le 06/03/2008, à 18:20

benbugohit

Re : libssh2 PHP, plusieurs commandes

et bien essaie de creer le user puis de faire le chpasswd comme precedemment apres wink


####   |  - Sur un ordi depuis l'âge de 9 ans
(o_o)    | - linuxien depuis 2002 (debian potato, mandrake 8, gentoo 2004.0,...)
..|~|..   | - ubuntu 10.10 sur Dell Vostro 1310

Hors ligne

#10 Le 06/03/2008, à 18:24

kneiss

Re : libssh2 PHP, plusieurs commandes

Oui, c'est vrai après tout...
C'était au cas où une solution était possible, mais sinon c'est vrai que je peux tout à fait faire comme ça !

Hors ligne

#11 Le 07/03/2008, à 12:49

kneiss

Re : libssh2 PHP, plusieurs commandes

Aurais-tu un moyen simple de pouvoir lancer plusieurs commandes en même temps ?

Je souhaite faire celà afin de changer automatiquement le mot de passe, après création du compte.

J'ai trouvé ce script, mais je ne le comprends pas trop...:

<?php
$ip = 'ip_address';
$user = 'username';
$pass = 'password';

$connection = ssh2_connection($ip);
ssh2_auth_password($connection,$user,$pass);
$shell = ssh2_shell($connection,"bash");

//Trick is in the start and end echos which can be executed in both *nix and windows systems.
//Do add 'cmd /C' to the start of $cmd if on a windows system.
$cmd = "echo '[start]';your commands here;echo '[end]'";
$output = user_exec($shell,$cmd);

fclose($shell);

function user_exec($shell,$cmd) {
  fwrite($shell,$cmd . "\n");
  $output = "";
  $start = false;
  $start_time = time();
  $max_time = 2; //time in seconds
  while(((time()-$start_time) < $max_time)) {
    $line = fgets($shell);
    if(!strstr($line,$cmd)) {
      if(preg_match('/\[start\]/',$line)) {
        $start = true;
      }elseif(preg_match('/\[end\]/',$line)) {
        return $output;
      }elseif($start){
        $output[] = $line;
      }
    }
  }
}

?>

Serais-tu comment mettre donc 2 commandes l'une après l'autre ?

Merci d'avance

Dernière modification par kneiss (Le 07/03/2008, à 12:50)

Hors ligne

#12 Le 07/03/2008, à 13:06

kneiss

Re : libssh2 PHP, plusieurs commandes

Eh bien en fait, j'ai trouvé solution à mon problème après une petite heure de recherche approfondie !

il suffit de separer par des ";" les commandes pour en faire plusieurs.

Merci encore à toi benbugohit, si tu ne m'avais pas aidé je serai encore à chercher mon script pour modifier un mot de passe big_smile

Hors ligne

#13 Le 27/08/2008, à 22:13

roger guevara

Re : libssh2 PHP, plusieurs commandes

salut
pas si tu pourrais postear s'il te plaît(vous plaît) ta solution, déjà q j'ai à ce qu'il semble le même inconvénient et je ne trouve pas la sortie(départ)
discupen mon mauvais Français(français)
des saluts