rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Executer commande ssh dans une page php

marie, le mercredi 18 octobre 2006 à 16:07:45
bonjour,

je voudrais executer une commande ssh sur un serveur distant
dans un script php,

j ai mes cles qui me permette de me connecter en ssh sans mot de passe
et tout cela fonctionne correctement,

mais comment faire pour executer a partir d une page php,
sachant qu je suis en utilisateur apache ?

le ssh2 serait une solution, mais je ne peux pas recompiler le php
car le serveur et en production et il n est pas possible de l'arreter
le temps de la compilation

merci
Répondre à marie  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
KnightDogg, le mercredi 18 octobre 2006 à 16:33:35
La fonction PHP "exec" te permet de lancer une commande, et en paramètre tu lui passes la commande à exécuter:
exec($sCmde);

La commande que tu passes en paramètre à cette fonction, tu la construis:

$sCmdeDist = "rm /tmp/*"; // commande distante, i.e. commande qui va s'exécuter sur ta machine distante, identifiée par son nom ou son adresse IP, que tu stockes dans la constante HOST, définie dans un fichier de conf par exemple; ici, la commande que tu vas lancer sur HOST, va supprimer tous les fichiers qui se trouvent dans le répertoire /tmp de HOST

$sCmde = "ssh ".HOST." ".$sCmdeDist;

Essaye donc cela.
Répondre à KnightDogg

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie, le mercredi 18 octobre 2006 à 16:40:07
j ai deja essayer,

seulement voila, je suis en utilisateur apache lorsque
j execute mon script php,

et je n ai pas les cles pour apache, et d'ailleurs
je n ai pas d 'utilisateur apache sur le poste
surlequel je fais le SSH,

lorsque je test ce que tu me proposes,
je n ai pas d erreur, mais rien ne s execute
Répondre à marie

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
KnightDogg, le mercredi 18 octobre 2006 à 16:52:35
Il faut alors que tu spécifies l'utilisateur pour lequel une clef a été générée de cette façon:

$sCmde = "ssh ".USER."@".HOST." ".$sCmdeDist;
par ex: $sCmde = "ssh marie@domain.com rm /tmp/*";
=> tu vas te connecter sur domain.com en tant qu'utilisateur marie, et si cet utilisateur a les droits sur le répertoire /tmp de domain.com, alors les fichiers qu'il contient seront supprimés.

Mais tu peux dans un premier temps tester ta commande distante en ligne de commande, avant de l'exécuter via un script PHP, avec un PuTTy par exemple.
Répondre à KnightDogg

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie, le mercredi 18 octobre 2006 à 17:09:12
voici exactement la commande que je fais,
je sais c'est en root, mais bon si deja ca fonctionne
comme ca c'est deja bien,

$command1 = 'ssh root@192.168.0.106 mkdir /home/marie';
exec($command1);


j'appelle mon script php, mais ne se passe, le repertoire n'est pas crée

en ligne de commande dans une console ca fonctionne,
Répondre à marie

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
KnightDogg, le mercredi 18 octobre 2006 à 17:17:51
Vérifie que le safe_mode n'est pas activé. Car si c'est le cas, seules les programmes situées dans le dossier défini par safe_mode_exec_dir sont exécutables ainsi.

Si tu as les droits suffisants, tu peux également essayer de désactiver le safe_mode, pour vérifier qu'il s'agit bien de la source du problème.

Sinon, si le safe_mode n'est pas activé, alors essaye de remplacer la commande "exec", par "shell_exec": cette fonction te retourne une chaine qui correspond au retour. Tu peux même essayer "system", avec un 2eme paramètre optionnel qui stockera le résultat de l'exécution ( a priori un entier type 0 ou 1 qui t'indique si l'exécution a échoué ou réussi), et cette fonction te retourne également une chaîne que tu peux afficher...
Répondre à KnightDogg

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie, le mercredi 18 octobre 2006 à 17:47:24
le safe mode est a off,

shell_exect en fontionne pas,
j ai essayer system et il me renvoie 255 dans le deuxieme
parametre,

je vais essayer de voir ce que ca veut dire ...
Répondre à marie

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
marie, le jeudi 19 octobre 2006 à 10:03:04
bon,

pour finir j ai genere les cles en tant que apache sur mon serveur,
je les ai mis au bon endroit sur le serveur distant,
et la lorsque j'appel ma page php, ca fonctionne,

mes commandes sont bien executer,

merci pour votre aide
Répondre à marie

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
boubacach, le lundi 3 décembre 2007 à 10:38:50
Bonjour, serait-il possible que vous m'indiquiez comment générer un couple clé publique/privée avec l'utilisateur apache. Je n'arrive pas a me connecter avec cet utilisateur. Il me demande un mot de passe alors que je ne lui en ait pas donné ? y a t-il un mot de passe par défaut à l'intallation ?

merci
Répondre à boubacach

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kusomio, le dimanche 28 octobre 2007 à 15:22:21
Bonjour, j'aimerais créer un panel admin pour lancer et couper un serveur de jeu et ceci m'intéresse vraiment beaucoup
j'ai été très etonné car je recherche cela depuis des mois .

Si une âme bienveillante qui s'y connais en php et qui voit comment m'aider pourrais me contacter sur msn

à cette adresse kusomio@hotmail.fr ce serait vraiment très gentil de m'aider car je recherche cela depuis longtemps

Merci de bien vouloir m'aider
Répondre à kusomio

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[SAP]Francis, le samedi 1 décembre 2007 à 16:49:19
Moi aussi, j'ai besoin de cela.
Répondre à [SAP]Francis

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Odward, le vendredi 14 décembre 2007 à 23:28:48
UP ^^ on est 3 a vouloir savoir exactement comment faire !!!
Donc du coups pas de message privée !! Le principe du forum est qu'il reste des traces pour les pauvres ames perdues comme nous...

Citation de marie :

pour finir j ai genere les cles en tant que apache sur mon serveur,
je les ai mis au bon endroit sur le serveur distant

Le principe de la génération de clef c'est pour ne pas avoir a rentrer de passe pour l'utilisateur apache (ou www-data) ?
Niveau sécurité c'est pas top non ???

(PS: j'essayerai de upper le sujet assez souvent en esperant que qqn ai la réponse !!)
Répondre à Odward

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
arth, le samedi 19 janvier 2008 à 09:07:36
J'avais réussi à faire ca justement pour un serveur de jeu, mais j'avais déployé comme je n'avais pas pris de renseignement surles clefs la librairie ssh2 pour php, qui ensuite m'avait permis vie un petit formulaire d'exécuter des commandes en ssh sur un serveur distant.

Mais bon installer la librairie ssh c'est pas de tout repos et il faut que ce soit PHP5 qui sot installé au moins.

Loup.
Le loup, solitaire et mystérieux.
Répondre à arth

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[SAP]Francis, le vendredi 15 février 2008 à 21:33:23
SVP! UP!
Répondre à [SAP]Francis

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
arth, le samedi 16 février 2008 à 08:31:27
Moi j'ai trouvé deux solutions : soit on utilise la biblio SSH que l'on ajoute à PHP, et on génère aussi les clefs. ce qui à l'avantage de se connecter dans mot de passe. Et ensuite on fait une connexion SSH directe dans le code PHP.

Ou sinon on exécute un script qui contient la commande ssh user@machine toujours avec des clefs générées pour éviter l'utilisation d'un mot de passe.


Le loup, solitaire et mystérieux.
Répondre à arth

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 popo, le mercredi 18 juin 2008 à 15:36:47
Je veux inserer une commende dans une page2 pour afficher une autre page1 distant.
Exemple:
page1 = http/www.site1.com/page1.php
page2 = pahe2.php
Répondre à popo
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger SSH Secure Shell 3.0 build 203SSH Secure Shell - SSH secure shell for workstations est un client SSH flexible permettant de se connecter de façon sécurisée à des...Catégorie: Telnet/SSH
Licence: Open Source
Télécharger PagePlus SEPagePlus - PagePlus SE est un logiciel gratuit de PAO (publication assistée par ordinateur) permettant de concevoir et de créer des...Catégorie: Présentation
Licence: Freeware/gratuit
Télécharger PageDefrag 2.32PageDefrag - Le défragmenteur de disque de Windows fait un boulot correct, mais il a un inconvénient : il ne défragmente ni le fichier...Catégorie: Formatage/Partitionnement
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « executer commande ssh dans une page php »