Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2007, 12h12   #1
Invité régulier
 
Inscription : octobre 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 49
Points : 6
Points : 6
Par défaut [SSH2] Socket et ssh

Bonjour à tous.

J'ai un script qui permet de se connecter via les sockets sur des serveurs.

Mon problème est que je doit faire le même script pour se connecter à un serveur ssh.

Questions : comment faire pour me loguer sur ce serveur nécéssitant un login et mot de passe (crypté ?) avec ce script.

Merci pour vos réponses.
romuald07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 13h50   #2
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Bonjour,
J'ai reussi a lancer un script (ou une commande système, ...) sur un serveur ssh de cette facon :

Code :
1
2
3
4
5
6
 
<?
$connection = ssh2_connect('serveur.ssh.fr', 22);
ssh2_auth_password($connection, 'login', 'mot_de_passe');
$stream = ssh2_exec($connection, 'perl mon_script.pl ');
?>
Du moins, en ligne de commande (en lancant php ce_script.php) et non, plus classiquement, à partir d'un client web.
En effet, en mode "normal", le problème est de repondre à la question "voulez vous enregistrer la clef RSA ?" (question qui apparait dans les logs d'Apache), mais qui bien sur reste sans reponse.

Je crois que c'est possible en faisant une manip que j'ai oubliée, et qui est à mon sens un véritable trou de securité (avec la technique qu'on m'avait donnée, on n'avait même plus besoin de mot de passe, or mon serveur Web est aussi un serveur ssh utilisé par pas mal de monde).
J'ai aussi essayé de pallier à ce probleme en permettant de me loguer en tant que user Apache sur mon systeme. J'ai fait un ssh sur le serveur distant, j'ai donc eu la question, je lui ai repondu oui (en principe la question n'est plus reposée ensuite)... mais ca n'a eu aucun effet concernant l'utilisation à travers un client.

Donc, je suis très interessée par les réponses éventuelles que tu pourrais avoir pour résoudre ce problème....

Sohnic
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 16h16   #3
Invité régulier
 
Inscription : octobre 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 49
Points : 6
Points : 6
Merci pour t'as réponse, ça l'aire de fonctionner.

Mais comment faire pour lire le résultat d'un script?

Merci
romuald07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 17h22   #4
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Soit je stocke tout dans un fichier resultat que j'exploite apres coup, soit mon script remplit (ou utilise) une base de données MySQL, qui peut se trouver eventuellement sur un serveur distant (donc eventuellement a l'emplacement de ton site web).
Il existe en php des fonctions de scp ou sftp, mais je ne les ai pas utilisées...
Tu utilises ton script en ligne de commande ? Sinon comment as-tu contourné le problème de la clef publique ?

Merci pour tes lumières,

Sohnic
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 13h42   #5
Invité régulier
 
Inscription : octobre 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 49
Points : 6
Points : 6
Mauvaise nouvelle : le script ne marche pas.
Raison : j'ai pas lu correctement ton message.

Voici le script :

Code :
1
2
3
4
$connection = ssh2_connect(mon.serveur.com', 22) or die('Echec de la connexion');
ssh2_auth_password($connection, 'login', 'mdp') or die("Erreur");
$stream = ssh2_exec($connection, 'cd mon_repertoire') or die("Erreur");
$stream = ssh2_exec($connection, './script.php') or die("Erreur");
Explication :

En fait, j'utilise (et souhaite utilisé) easyphp sous windows avec PHP5. Quand j'execute ce code : aucune erreur. Or le script doit écrire le résultat dans un fichier text et là j'ai rien : pas de fichier, données,...pourtant mon script fonctionne.

Quand à la clé publique, j'ai essayé la méthode qui se trouve dans l'aide de php : elle me retourne une erreur (fonction ssh2_auth_pubkey_file)

Je bosse encore dessus, mais pour l'instant je stagne.
Comment fais-tu pour faire fonctionner ton script ?
J'ai essayer mais il me retourne une erreur :
Citation:
Fatal error: Call to undefined function ssh2_connect() in C:\Program Files\EasyP
HP 2.0b1\php5\teste2.php on line 25
Merci pour tes réponses, elles sont les bien venues.
romuald07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2007, 16h37   #6
Membre éclairé
 
Avatar de sohnic
 
Femme
bioinfo
Inscription : mai 2003
Messages : 385
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : bioinfo

Informations forums :
Inscription : mai 2003
Messages : 385
Points : 363
Points : 363
Bonjour,
Je suppose que l'erreur d'apostrophe est une faute de frappe dans :
$connection = ssh2_connect(mon.serveur.com', 22) or die('Echec de la connexion');
qui doit etre :
$connection = ssh2_connect('mon.serveur.com', 22) or die('Echec de la connexion');

Mais ceci n'explique pas ton erreur. As-tu installé libssh2 ? Cette bibliothèque est, je crois, un prérequis indispensable.
Je suis sous linux et windows mais sans easy php, et je me souviens que j'avais un peu galéré la-dessus... Il est possible qu'il faille aussi modifier le php.ini. Mais tout ca remonte à loin.
Jettes un oeil la dessus :
http://fr.php.net/manual/fr/ref.ssh2.php , ca t'en dira surement plus long...

Sinon, comme dit dans le premier post que je t'ai envoyé, je n'ai reussi à faire tourner ces types de scripts qu'en ligne de commande. Peut-etre que sous Windows, tu n'auras pas ce problème. La gestion des utilisateurs est différente que sous linux...

Evidemment, la suite de ton script ne peut pas tourner, l'initialisation de la connexion ayant échouée et les fonctions suivantes utilisant aussi libssh2.

Voila, essaie deja de rendre ton serveur capable d'utiliser les fonctions ssh pour voir comment ca se comporte...

Bon courage !

Sohnic
__________________
http://www.noctinfo.fr/

(\ _ /)
(='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
(")-(")
sohnic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h54.


 
 
 
 
Partenaires

Hébergement Web