[putty] et automatiser des commandes ssh

Fermé
nonodev - 9 juil. 2007 à 11:24
 marius - 19 avril 2012 à 10:24
Bonjour,

Je travaille actuellement sur un script qui permettrait d'automatiser des commandes ssh.
Pour ce faire, j'utilise putty avec comme paramètres : putty.exe -ssh -2 -P 22 admin@ip -pw pass -m commande.txt

Le fichier commande.txt contient la liste des commandes à effectuer une fois la connexion ouverte.
La connexion se passe sans problème.
Le soucis, c'est qu'une fois la connexion effectué, la première chose que le serveur demande est "press any key to continue".
Quoi que je mette dans commande.txt, le serveur me jette.

D'où ma question :
Comment faire comprendre à putty d'envoyer le code ASCII d'une touche ? ou peut-être existe il une autre possibilité pour simuler le "press any key".

Any idea?
Merci.

7 réponses

Salut,

Moie pour faire cela j'ai trouvé un addon a putty extraputty ( http://extraputty.free.fr ).
Ce soft gratuit, te permet de sauvgarder des commandes ou de faires des sequence de commandes afin d'automatiser tout cela.
CE petti addon permet depuis peu ,de développer toi meme un soft pour automatiser tes tache car il offre une API (DLL) afin que des application win32 puissent envoyer ou recevoir des donnees via tout les protocoles putty.

J'ai vu qu'il y avait un example en MFC.

Voila j'espère que cela pourra t'aider car j'ai cherche longtemps avant de trouver.


Asebt.
5
Il y aussi KiTTY (http://www.9bis.net/kitty/ qui permet d'automatiser une connexion à un serveur SSH et de lancer automatiquement des commandes à distance.
0
dubcek
Messages postés
18531
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 août 2022
5 553
9 juil. 2007 à 11:37
Simuler l'envoi d'un <enter> :
echo | commande
0
à mettre dans commande.txt ?
si tel est le cas, ça ne peut pas fonctionner.
en effet, putty envoie les commandes se trouvant dans commande.txt directement au server ssh, et ce dernier ne connais pas le "echo".
0
dubcek
Messages postés
18531
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 août 2022
5 553
9 juil. 2007 à 12:35
C'est putty ou une commande dans command.txt qui demande press any key ?
quel genre de commande dans command.txt ?
0
il s'agit en fait de changer un paramètre sur un switch.
le script doit donc :

1. se connecter en ssh sur le switch (grace a putty)
putty.exe -ssh -2 -P 22 admin@ip -pw pass -m commande.txt

2. une fois connecté, putty execute les différentes commandes entrées dans le fichier texte.
commande.txt pourrait par exemple contenir : 'show ip' ou 'conf t'.

Comme je le disais, la connexion passe sans problème.
Mais, le switch demande, d'appuyer sur une touche pour continuer une fois la connexion établie.
Si j'envoie directement une commande, 'show ip' par exemple, il me jette avec le message : "Server refused to start a shell/command".

J'espère que c'est plus clair ..
Merci.
0
dubcek
Messages postés
18531
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 août 2022
5 553
9 juil. 2007 à 15:41
Le switch doit avoir une option pour automatiser une connection sans intervention.
le fichier command.txt ne contient que des commandes du switch ?
0
Bonjour,
J'ai exécuté la commande indiquée, à savoir :
putty.exe -ssh -2 -P 22 admin@ip -pw pass -m commande.txt
Ca marche (merci).
Mais j'aurais un script commande.txt qui prend des arguments. Je voudrais donc faire un truc du style "putty.exe -ssh -2 -P 22 admin@ip -pw pass -m commande.txt argument"
J'aurais voulu savoir si c'était possible et quelle était la syntaxe...
Merci !
0
dubcek
Messages postés
18531
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
9 août 2022
5 553
Modifié par dubcek le 18/04/2012 à 09:32
il faudrait exécuter un .bat avant le putty qui modifie le fichier commande.txt avec les arguments et appelle putty avec le fichier commande.txt modifié
0
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 329
24 nov. 2008 à 16:27
Salut.
Il faut peut être passer une commande à ssh.
Sou linux, j'utilise ssh -t pour envoyer des commandes automatisés.
voir là pour les autres options qui devraient être supporté : http://www.delafond.org/traducmanfr/man/man1/ssh.1.html
0
conf t, show ip.... un cisco, ou un bluecoat ? ;-)

pour cet usage j'utilise Linux et le prog "Expect"
il attend un mot clé et envoi ce que t'as programmé.

Ca fonctionne au poil.

sous windows? desolé!
0
Pourquoi tu ne peux pas utiliser une connexion en telnet?

Moi a ta place voila le script que j'aurai fait en PERL
#!/usr/bin/perl
use strict;

my $tmpfilename = "$ENV{TMP_PERL}\\tmp$$";
my $deviceip = $ARGV[0];

open(TMPFILE,"+>$tmpfilename");
print TMPFILE <<ECHO;
login telnet ##ici tes commandes à taper
mdp telnet
ter len 0 ## sert a ne pas s'areter à 25 lignes

sh int status

exit
ECHO
close(TMPFILE);


system("type $tmpfilename | nc -w 20 $deviceip 23 | grep -i \"connect\" > conf.log ");



Bon lla il te faut la commande nc.exe et ici le script attend que tu lui donne l'ip du Switch

Cordialement
-4