[ssh + expect] utlisation de belier [Résolu/Fermé]

-
Bonjour,

J'utilise belier sous ubuntu server(machine virtuelle) et j'ai établi la connexion entre ce dernier et autres ordinateurs.Tout ces ordinateurs sont des machines virtuelles.
Je voulais savoir comment entrer la même commande shell à distance sur les différentes machines.

Merci d'avance pour votre aide.
Afficher la suite 

10 réponses

Messages postés
3088
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
210
0
Merci
Je n'ai jamais utilisé belier, mais ça a l'air puissant, réfère toi au man peut etre.
0
Merci
c vrai belier est bien puissant,tu peut jeter un oeil sur ce lien pour savoir ses caractéristiques : http://www.ohmytux.com/belier/
Mais ta solution n'a pas résolu mon problème :(
Messages postés
3088
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
210
0
Merci
http://www.ohmytux.com/belier/documentation.html

tout est super expliqué sur cette page :)

Belier ne sert qu'a se connecter à une machine distante automatiquement, pas plus.
Il ne vas pas executer de code distant, mais étant donné que te connexion est automatique, tu peux utiliser le script qu'a généré belier dans un autre script.

0
Merci
J'ai déjà lu cette documentation mais je n'ai pas trouvé le pt en question:
"Belier generates one script for each final computer to reach."
et je me demande comment par exemple envoyer des copies d'un même fichier(script) à tout les autres machines par une seule commande shell???
Merci pr la réponse ^^
Messages postés
3088
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
210
0
Merci
tu pourrais copier ici le contenu d'un script généré par belier ?

tu as compris comment générer le script de connexion non ?
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586
0
Merci
Salut,

D'après ce que j'ai compris, Belier est en fait un programme en python et expect automatisant des connexions via ssh.

Si tu n'as pas peur de te plonger dans la doc de "expect", ce n'est pas la mer à boire pour élaborer un script se connectant à plusieurs machine pour y exécuter une même commande.

Ou même avec "belier" à la limite... Comme proposé par Leahkim, en partant d'un exemple de script généré par belier, tu dois pouvoir le cloner pour diverses machines ;-)


0
Merci
Bonjour,
merci les amis pour vos réponses.
J'ai bien suivi le tutoriel et belier à générer le script mais je ne sais pas où il l'a généré.
autre question:En fait,j'ai créer 2 LANs,le premier contient une machine (ubuntu desktop) +un serveur S1(ubuntu server) + machine ou j'ai installé belier.le 2éme LAN contient le même serveur S1+ un autre serveur S2(tout en virtuel).J'ai établi la connexion entre belier et le serveur S2 par l'intermediaire S1.Je veux envoyer un fichier script de la machine desktop à S2.comment faire?
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Re-

J'ai bien suivi le tutoriel et belier à générer le script mais je ne sais pas où il l'a généré.
Je viens d'installer "belier" et de faire un test...
Le script est généré dans le répertoire d'où tu lances la commande et où tu avais généré le fichier contenant le login et mot de passe de l'hote...
Par contre même si le programme te rend la main quasi instantanément, il lui faut quelques secondes avant de générer le script, qui n'apparaitra donc pas de suite dans le répertoire ;-\


Pour ta seconde question, je ne crois pas que ce soit possible. Du moins pas directement comme tu pourrais l'espérer.
Le programme "belier" ne fait que générer un script (ou des scripts) de connexion avec la syntaxe d'expect (pas très évidente je l'avoue), et donc enchaine juste des connexions (login+password) successives en passant d'une machine à une autre.

Pour la copie de fichier via plusieurs machine intermédiaires, ça ne pourras pas se faire directement, par contre ce que tu peux faire c'est traverser toutes les machines de ton LAN jusqu'à la destination voulue, et à partir de là, lancer via scp la copie du fichier désiré depuis son point de départ vers la machine où tu te trouve...
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Oublie ce que j'ai dit dans la 2ème partie de mon message.

La solution existe bel et bien avec "belier". Il te suffit de suivre le tuto intitulé "Open a tunnel for data while connecting to a host" sur la doc officelle ;-))
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Waow, je viens de tester et c'est vraiment nickel.

Shell 1 :
PC@home => connexion ssh Serveur1@boulot => connexion ssh Serveur2@boulot => Standby

Shell 2 :
PC@home => scp -P 9999 fichier.txt Serveur2@127.0.0.1:~ => password => transfert



:-))
0
Merci
Je viens de tester ça,mais je ne sais pas pourquoi il ne marche pas chez moi :(

quand je tape "scp -P 9999 test.txt root@127.0.0.1:~" dans shell2
il me renvoie ce code d'erreur:
"ssh:connect to host 127.0.0.1 port 9999:connection refused
lost connection
"
Apparemment le port 9999 n'est pas ouvert,en + il n'existe pas parmi la liste des ports générer par la commande "netstat".
Comment puis-je régler ça?
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
As-tu bien mis le paramètre "-t" dans le fichier de connexion ???

user@serveur1 password1 -t
user@serveur2 password2

Le fichier généré par la commande "bel --entree=nom_fichier" contient-il bien dans la syntaxe "spawn ssh" l'option "-L9999:127.0.0.1:9999" ???

spawn ssh -o NoHostAuthenticationForLocalhost=yes -o StrictHostKeyChecking=no -L9999:127.0.0.1:9999 user@serveur1
0
Merci
oui j'ai bien mis le -t dans le fichier de connexion et le fichier généré contient bien la ligne :
spawn ssh -o NoHostAuthenticationForLocalhost=yes -o StrictHostKeyChecking=no -L9999:127.0.0.1:9999 user@serveur1

mais de + il contient cette ligne:
spawn ssh -o NoHostAuthenticationForLocalhost=yes -o StrictHostKeyChecking=no -L9999:127.0.0.1:22 user@serveur2

et je ne trouve pas ce qu'il manque encore :(
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Bon je viens de refaire un test et chez moi ça roule ;-\

Effectivement à l'établissement de la connexion (après avoir lancé le script de connexion), la commande "netstat" ne me renvoie aucun port 9999 (ni en user ni en root). Par contre lorsque je lance la commande de copie (scp); là j'ai bien la connexion via le port 9999 d'établie :

tcp        0 178912 MDK-2010:43211              MDK-2010:9999               ESTABLISHED
tcp   232080      0 MDK-2010:9999               MDK-2010:43211              ESTABLISHED


;-))
Pour être bien claire voilà ce qui généré mot à mot:
spawn ssh -o NoHostAuthenticationForLocalhost=yes -o StrictHostKeyChecking=no -L9999:127.0.0.1:9999 IP_du_serveur1
ssh -o NoHostAuthenticationForLocalhost=yes -o StrictHostKeyChecking=no -L9999:127.0.0.1:22 IP_du_serveur2
ssh:connect to host IP_du_serveur1 port 22:Connection timed out
spaw_id:spaw id exp6 not open
while executing
...
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Et est-ce que sans le paramètre "-t" la connexion s'établie ?
sans le "-t" je peut ouvrir le shell du serveur2
mais qd je test l'envoie du fichier ds un 2ème shell de belier je trouve la même erreur,c_à_dire,qd je tape "scp test.txt user@ip_serveur2:~"
il me retourne:"ssh:connect to host ip_serveur2 port 22:connection refused
lost connection"
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Je récapitule :

Depuis un terminal (shell_1) tu crées un fichier (appelé connexion) avec :

user@serveur_1 password_1 -t
user@serveur_2 password_2

Tu génères le script avec :

bel ----entree=connexion

et tu lances le script depuis "shell_1" :

./serveur_2.sh

La connexion s'établie et tu te retrouves avec un prompt sur "serveur_2".

Tu ouvres un nouveau terminal (shell_2) et tu tapes :

scp -P 9999 test.txt root@127.0.0.1:~"

Et tu te retrouves avec l'erreur :

ssh:connect to host ip_serveur2 port 22:connection refused
lost connection


C'est bien ça ?

Alors, est-ce que tu as bien établi la connexion au serveur_2 avec le "root" ( "root@127.0.0.1") et non pas "user" ???
0
Merci
Enfinnnnnnnnnnnnn!!!
J'ai réussi à copier le fichier...
l'erreur c'était au niveau des adresses IP entrées dans le fichier "connections".
Je vous remerci les amis.Je vous suis très reconnaissante pour vos coopérations.
merci encore.
jipicy
Messages postés
43478
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
7 octobre 2019
4586 -
Happy for you ;-))
thanks (^_^)