script bash, ssh, cat >, oui un peu de tout ca

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : script bash, ssh, cat >, oui un peu de tout ca

par jim » 28 mai 2007, 14:25

Bonjour, et merci pour vos reponses,
Bon, je tiens à te rassurer Ripat, tu n'aura pas à te couper la main ;)
Donc, c'est bien mon probleme, mais je suis quelque peu embeter, je ne sais pas trop comment faire du coup pour l'échange des clés (si je n'etais pas le seul sur la machine, j'essairai tout et n'importe quoi, mais je prefere pas). J'ai regarder dans /etc/passwd et shadow, l'utilisateur www-data, n'y apparait pas, par contre j'ai un apache. Mais je ne sais pas trop comment creer la clé, ou la recuperer si elle existe deja. Je sais creer une cle avec ssh-keygen, mais normalement je suis connecter sur le compte correspondant. La je suis un peu perdu, dois-je creer l'utilisateur...? ou la clé est deja qqpart et je ne sais pas ou?

Merci d'avance.

par Ripat » 25 mai 2007, 13:37

Le problème est que le script veut accéder en ssh à un compte situé sur un serveur distant. Je suppose qu'il y a échange de clé privée/publique afin d'éviter de devoir taper le mot de passe de l'utilisateur root. Le script peut donc s'exécuter sans prompt pour le mdp.

Premier point: du ssh en root, c'est courageux (si pas téméraire) mais pas top au niveau sécurité mais bon.

Ensuite, si ça marche en lançant le script depuis une console root, l'échange des clés fonctionne. Mais si le script est lancé depuis PHP, c'est une "console" www-data (user de httpd/apache) qui va demander la connexion ssh. Comme il n'y a pas de clés pour www-data, la connexion échoue certainement. Pour t'en assurer, fais:
exec ('ssh [email protected] cat /proc/partitions > /tmp/erreur-ssh 2>&1');
Et va voir le contenu de /tmp/erreur-ssh. Je mets ma main à couper qu'il y aura un message d'erreur du genre "Invalid Key".

par crash » 25 mai 2007, 13:15

Bonjour,

Essaie ceci:
<?php
echo '<pre>';
$last_line = system('cat /proc/partitions', $retval);
?>
Mais la meilleure méthode enfin ce n'est que mon avis si tu veux afficher tes partitions il faut plutot utiliser ceci:
<?php
echo '<pre>';
$last_line = system('df -h', $retval);
?>
En esperant que cela ira.

Cdt.

script bash, ssh, cat >, oui un peu de tout ca

par jim » 25 mai 2007, 12:53

bonjour,
j'ai un script en bash qui fonctionne bien, celui ci contient une ligne du style "ssh [email protected] cat /proc/partitions > /usr/tmp/mes_partitions"
Quand je l'execute normalement, le fichier apparait bien sur la machine ou le script est executé et avec le contenu de la machine X.X.X.X. Mais quand je l'execute sous php avec la commande exec ou shell_exec, le fichier mes_partitions est créés, mais vide. :(
Ca doit etre un probleme de flux, ou je ne sais quoi, que je ne sais pas regler, si qq'un avait une solution a me proposer, cela serai super.
Merci
Cordialement
JM