[PERL PHP] ouverture d'une séssion SSH

ouverture d'une séssion SSH [PERL PHP] - Programmation

Marsh Posté le 21-05-2002 à 16:27:48    

J'ai réalisé une interface pour gérer des serveurs DHCP.
pour rebooter le serveur DHCP par le biais d'une interface web il faut les droits root a l'utilisateur apache la solution simple serait que l'utilisateur du serveur web soit root.root mais cela pose des problemes evident de sécurités  
donc j'ai pensé que lorsque l'utilisateur clic sur un bouton cela ouvre une fenetre de connection (DOS ou TERM suivant OS) pour une séssion SSH il se logue et redemarre le serveur manuellement  
cela éviterai de faire tourner le serveur apache en root.
 
Le problème c'est que je ne sais pas si on peut faire ca et surtout comment je pourrai le faire, avec quel language .... (je sais coder en C Java PHP PERL mais bon je maitrise pas a fond.
 
merci les gars je pete un cable la  :pt1cable:

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc le 21-05-2002 à 16:28:16--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 21-05-2002 à 16:27:48   

Reply

Marsh Posté le 22-05-2002 à 09:09:04    

Hum... je me suis posé la meme question y'a pas longtemps. J'ai finalement contourné le pb : j'ai un agent SSH qui tourne sur mon serveur web avec des droits tres limités (copie de fichiers pas tres importants). Le user SSH est www (le user Apache), ce qui veut dire que n'importe quelle personne qui accede a mon site peut faire un peu ce qu'il veut comme l'agent tourne. Je sais pas si ds ton cas tu peux adopter le meme genre de solution.  
Pour ton cas, le probleme majeur est le suivant : l'envoi de la passphrase SSH du client -> serveur web. Tu ne peux pas te permettre de la balancer sans la crypter... Donc il faut que tu utilises SSL ou que tu trouves un prog qui se charge de ça (ça existe ???).
Fais une recherche sur Expect autrement...
 
hihi :p

Reply

Marsh Posté le 22-05-2002 à 10:51:31    

Scuse mais j'ai pas tout compris, je veux que le script PHP ouvre une connection SSH en root pour que le serveur puisse etre redémarré.
 
merci
 
huhu :p

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc le 22-05-2002 à 10:57:21--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-05-2002 à 11:00:35    

Ok. J'ai peut etre pas été tres clair aussi... ;)
 
J'ai compris ce que tu veux faire.  
Pour ouvrir une session SSH il faut donner ta passphrase, on est d'accord ? Il faut donc que ta passphrase soit envoyé de ton client vers ton serveur web... et c'est justement la qu'il y a pb : il faut crypter cette connexion sinon qqun pourrait recuperer ta passphrase SSH en clair (je t'explique pas le massacre potentiel apres ;)). Il faut donc lancer ton serveur en mode https comme ça toutes les données qui transitent entre le client et le serveur web sont cryptées...
 
C'est plus clair ?
 
hihi :D
 
EDIT : pour le lancement de SSH en lui meme c'est tout con : en Perl tu fais un system (/usr/bin/ssh...);par exemple.

 

[jfdsdjhfuetppo]--Message édité par impulse le 22-05-2002 à 11:03:04--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-05-2002 à 11:13:58    

ok je comprends mieux  
 
mais je vois toujours pas comment faire pour qu'a partir d'un script PERL je me connecte (
system(/usr/sbin/ssh -l root IP)  
puis donner le mot de passe root
et enfin faire /etc/init.d/dhcpd restart).

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc le 22-05-2002 à 11:14:33--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-05-2002 à 11:18:17    

Citation :

ok je comprends mieux  
 
mais je vois toujours pas comment faire pour qu'a partir d'un script PERL je me connecte (  
system(/usr/sbin/ssh -l root IP)  
puis donner le mot de passe root  
et enfin faire /etc/init.d/dhcpd restart).  


 
Ah oui c'est vrai. J'avais oublié ça comme j'utilise un agent moi... Avec un simple pipe ça devrait etre bon, non ?
 
hihi :p

Reply

Marsh Posté le 22-05-2002 à 11:25:10    

heuu pour le mot de passe il faut que je cherche comment le mot de passe spécifier en ligne de commande mais merci quand mm

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc le 22-05-2002 à 11:25:34--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-05-2002 à 11:31:44    

man ssh :  
 
-l login_name : specifies the user to log in as on the remote machine.
-W password : specifies the password of the user to log in as on the remote machine. This option can be used only if PasswordAuthentication is selected and its usage must be limited to batch usage when no other authentication method is possible.
 
hihi :p

Reply

Marsh Posté le 22-05-2002 à 11:37:42    

J'ai oublié quelque chose : il existe un module SSH pour Perl : Net::SSH.
 
hihi :p

Reply

Marsh Posté le 22-05-2002 à 11:40:56    

ok je plonge dans mon livre perl mais par contre je ne dois pas avoir le  man que toi l'option -W n'est pas indiqué !

Reply

Marsh Posté le 22-05-2002 à 11:40:56   

Reply

Marsh Posté le 22-05-2002 à 11:51:32    

ok merci la c'est vraiment cool je pense m'en sortir ;
 
 
 
PERL c'est vraiment trop bien !

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc le 22-05-2002 à 11:51:46--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 22-05-2002 à 12:24:17    

sinon pour info il esxiste un applet JAVA SSH qui marche tres bien

Reply

Marsh Posté le 22-05-2002 à 13:01:17    

Bah c'est déja tres simple comme ca:  
 
    use Net::SSH::Perl;
    my $ssh = Net::SSH::Perl->new($host);
    $ssh->login($user, $pass);
    my($stdout, $stderr, $exit) = $ssh->cmd($cmd);

Reply

Marsh Posté le 22-05-2002 à 13:06:29    

Citation :

Bah c'est déja tres simple comme ca:  
 
   use Net::SSH::Perl;  
   my $ssh = Net::SSH::Perl->new($host);  
   $ssh->login($user, $pass);  
   my($stdout, $stderr, $exit) = $ssh->cmd($cmd);


 
Il marche le module Net::SSH chez toi ? Moi j'ai essayé de l'installer pdt au moins une semaine et j'ai été obligé d'abandonner :( Ce put#%$@ de HP-UX voulait pas entendre parler de la librairie que Net::SSH utilise (Pari).
Il avait l'air bien ce module pourtant...
 
hihi :p

Reply

Marsh Posté le 22-05-2002 à 13:19:50    

ben la j'essaye de l'installer avec CPAN (le truc style apt-get) mais je lutte un peu il arrive pas a se connecter aux serveurs FTP, faut que je regarde mieux.

Reply

Marsh Posté le 22-05-2002 à 13:36:12    

Citation :

ben la j'essaye de l'installer avec CPAN (le truc style apt-get) mais je lutte un peu il arrive pas a se connecter aux serveurs FTP, faut que je regarde mieux.


 
Moi j'avais tout fait a la main... au moins une 20aine de modules a installer avec toutes les dependances entre modules :(
Je n'ai pas eu de pb pour tous ces modules mais avec la librairie Pari => j'etais vert. Si le module CPAN fait tout a ta place : tant mieux. Sinon tu te tapes tous les README et t'installes tous les modules a la mano, comme moi ;)
 
T'utilises quoi comme OS ? Debian ?
 
hihi :p

Reply

Marsh Posté le 22-05-2002 à 13:41:19    

ahhh alors tu vas etre content (je pense) telecharge le module CPAN sur perl.org tu le configure (c'est interactif en plus) et apres tu telecharge le tar.gz de net::ssh::Perl et la le bonheur c'est que CPAN installe toutes les dépendances (enfin presque) .
 
j'ai installé en plus Math::GMP et sa marche maintenant
 
 
personnellemet j'utilise debian mais la je suis au taf donc c'est RH7.2 .

Reply

Marsh Posté le 22-05-2002 à 13:52:34    

Citation :

ahhh alors tu vas etre content (je pense) telecharge le module CPAN sur perl.org tu le configure (c'est interactif en plus) et apres tu telecharge le tar.gz de net::ssh: erl et la le bonheur c'est que CPAN installe toutes les dépendances (enfin presque) .
 
j'ai installé en plus Math::GMP et sa marche maintenant
 
 
personnellemet j'utilise debian mais la je suis au taf donc c'est RH7.2 .


 
Voui voui, je connais le module CPAN. Le pb c'est que l'installation qui foire chez moi c'est celle de Math::GMP justement... ce module a besoin de Pari et j'arrive pas a compiler et installer Pari sur mon Unix. Enfin bon c'est pas grave, ça fait au moins 1 mois que je suis passé a autre chose ;)
Etant donné que j'utilise SSH/SCP seulement pour copier quelques fichiers et que j'ai un agent SSH, je peux faire un system (scp...); tout con.
 
Tant mieux si ça marche chez toi :)
 
[:impulse]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed