Forum Clubic

Problème script SSH

Bonsoir,

Pour des raisons qui me sont inconnues, la configuration de mes clients légers (Wyse sur OpenSuse) divergent sur un point.

Là où ça fonctionne :
Sur le Wyse 1 via Putty en ligne de commandes, je lance un shutdown.
Voici la commande :
“C:\Users\test\Desktop\Programmes\putty.exe” “192.168.1.90” -l root -pw “pwroot” -m “C:\Users\test\Desktop\commande.txt”
Dans le commande.txt, juste la commande shutdown -h now de renseignée.

Là où ça ne fonctionne pas :
Sur le Wyse 2 via Putty en ligne de commandes, je lance un shutdown. La commande ne fonctionne pas. Après plusieurs tests j’ai réussi à voir d’où provenait le problème.
Si je mets le compte root comme dans le cas de figure du Wyse 1, la commande ne fonctionne pas. Si je mets le compte admin cela ne fonctionne pas non plus par manque de droits. Le seul moyen qui fonctionne et de se logger via le compte admin, d’effectuer un “su root” et le mot de passe qui va bien, puis de balancer la commande.

Pour pallier à ce problème, il serait intéressant que je puisse intégrer toutes les entrées clavier dans un fichier

Exemple :
send “su root”
send pw “pwroot”
… enfin je pense que vous avez compris.

J’aimerais vraiment éviter de devoir passer sur chaque poste pour donner tel ou tel droit à un fichier/répertoire, donc si c’est faisable sans ça serait tout bénéf.

Je vous remercie par avance.
Edité le 29/05/2012 à 21:35

Déjà utilise une authentification à clés. C’est abérrant que putty permette de passer le mot de passe en paramètre.
D’ailleurs ça marchera pas ça, avec su ou sudo, et heureusement.

Ensuite configure sudo pour permetre à ton compte “admin” d’executer shutdown sans mot de passe.

En fait, Putty permet de faire les deux, c’est moi qui ait préféré mettre le mot de passe en direct dans le script.

Ca revient à faire la manipulation sur chaque machine, chose que je souhaite éviter.

Ce qui serait génial,ce serait d’intégrer dans un fichier txt ou autres toutes les commandes qui seraient interprétées successivement (et même le mdp quitte à le crypter).
Edité le 31/05/2012 à 15:25

Non mais il n’y a aucun moyen d’automatiser l’envoie du mot de passe à su ou sudo, ces deux là n’acceptent que la saisie au clavier, rien d’autre.

Il faut corriger le fichier /etc/sudoers pour donner l’autorisation a admin d’executer shutdown sans fournir le pass root.

Oui en faisant ça aucun souci, fastidieux (d’où l’idée du script putty ^^ ) mais ça fonctionne. Au pire des cas je passerai par cette solution. Je me demandais s’il ne serait pas possible d’automatiser cette tâche “ingrate” avec un script AutoIT?

Parcontre je n’arrive toujours pas à savoir pourquoi sur le modèle Wyse 1 le script putty fonctionne en root, et sur le modèle Wyse 2 impossible de s’authentifier … enfin du moins directement dans le script.
Edité le 05/06/2012 à 23:57

OK problème résolu, je me suis penché sur le script AutoIT.

Script à exécuter en 1er :


Run("cmd.exe","")
Send ( " cd Desktop " )
Send ( "{ENTER}" )
Send ( " putty.exe" ) 
Send ( "{SPACE}" ) 
Send ( "192.168.1.90 -l admin -pw admin" )
Send ( "{ENTER}" )
WinWaitActive ("192.168.1.90 - PuTTY","")
WinActivate ("192.168.1.90 - PuTTY","")

Script à exécuter en 2nd :


WinActivate ("192.168.1.90 - PuTTY","")
Send("su{ENTER}")
Sleep ( 2000 )
Send("lemdp{ENTER}")
Send("shutdown -h now{ENTER}")

Le 1er script est une navigation au clavier dans la console Windows pour arriver au terminal Putty
Le 2 nd script est lancé une fois que la fenêtre terminal Putty est active. Donc envoi de la commande su + mdp + shutdown

Wow
Et tu trouves pas ca fastidieux ?

Si tu veux vraiment automatiser des trucs sous linux depuis une machine windows, il faut scripter en perl ou passer par cygwin.
Mais faire des bidouilles de ce genre qui simuler des entrees clavier, je trouve ca d’un sale extraordinaire…
Rien que la gestion d’erreur est inexistante avec cette facon.

Mais bon, si ca te convient, tant mieux…

2 scripts, et seule l’adresse IP est à changer dans le script 1… non vraiment j’ai déjà vu pire ^^

Oui ça peut choquer les puristes, mais au moins j’arrive à un résultat sans passer sur tous les postes. “Sale extraordinaire” … je pense qu’il y a bien plus dégueulasse que ça.

Me convenir est un bien grand mot.
Disons que pour éteindre 50 clients légers le soir à 20H, ça suffira ^^
Edité le 06/06/2012 à 10:16

Oui bien sur…

Loin de moi l’idee que tu fais du sale boulot. On a tous dans un coin des machins bidouillés “parce que ca suffit”.
Je veux juste dire qu’un “bon” script n’est pas forcement incompatible avec “peu de temps” et “ca suffit bien”…

C’est juste que quitte a scripter, autant y aller avec de bons outils comme cygwin ou perl (bien que perl sous win = bof), ca permet au moins de generer du log et des erreurs. Et ca met pas franchement plus de temps que faire un script degueu autoit car tu te rattrapes rien que sur le debug deja…
AutoIT, faut l’envisager comme ultime dernier recours face a du windows autiste et des applis moisies impossibles a automatiser. Mais dès qu’il y a du linux qqpart, faut vraiment passer par du “vrai” scripting qui est autrement plus puissant et facile a mettre en oeuvre… Linux est le roi de l’automatisation, s’en passer est vraiment tres dommage.
C’est un peu comme fixer un caddie a la portiere d’une berline avec du fil de fer au lieu de mettre ses courses dans le coffre…

[edit] Deja, au lieu de triturer Putty, tu ferais mieux d’utiliser plink qui est la ligne de commande de putty pour le scripting :slight_smile: Tu ne devrais pas avoir de probleme d’authentification de cette facon[/edit]
Edité le 06/06/2012 à 11:33

J’avais omis de préciser un détail dans mon premier post, c’est que moi et langages de programmation ça fait vraiment 2. D’ailleurs, j’avais creusé pas mal avant de poster ici (forums Wyse, appel prestataire, Wyse Device Manager, …)
Lorsque j’ai vu la réponse de Lithium (Non mais il n’y a aucun moyen d’automatiser l’envoie du mot de passe à su ou sudo, ces deux là n’acceptent que la saisie au clavier, rien d’autre. ), je me suis dis qu’il ne fallait pas que je m’embourbe dans cette voie (script putty, …) car au final je n’obtiendrais pas le résultat escompté.

Ce sont les mots “ces deux là n’acceptent que la saisie au clavier, rien d’autre” qui m’ont fait pensé qu’AutoIT était peut être la clé.

Disons que la solution de secours est en place, et que j’ai plus de temps pour “élaborer” quelque chose de plus propre ^^

En tout cas merci pour vos réponses, elles me permettront d’explorer de nouvelles pistes.