[ssh + expect] utlisation de belier
Résolu/Fermé
A voir également:
- [ssh + expect] utlisation de belier
- Ssh download - Télécharger - Divers Web & Internet
- Ssh n'est pas reconnu en tant que commande interne - Forum Linux / Unix
- Access denied putty ssh ubuntu - Forum Linux / Unix
- Ssh bad configuration option ✓ - Forum Linux / Unix
- Rsh ssh - Forum Linux / Unix
10 réponses
Leahkim
Messages postés
3081
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
281
8 sept. 2010 à 15:18
8 sept. 2010 à 15:18
Je n'ai jamais utilisé belier, mais ça a l'air puissant, réfère toi au man peut etre.
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 :(
Mais ta solution n'a pas résolu mon problème :(
Leahkim
Messages postés
3081
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
281
9 sept. 2010 à 09:16
9 sept. 2010 à 09:16
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.
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.
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 ^^
"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 ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Leahkim
Messages postés
3081
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 mars 2014
281
10 sept. 2010 à 09:18
10 sept. 2010 à 09:18
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 ?
tu as compris comment générer le script de connexion non ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 sept. 2010 à 09:41
10 sept. 2010 à 09:41
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 ;-)
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 ;-)
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?
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 sept. 2010 à 15:42
10 sept. 2010 à 15:42
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...
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 sept. 2010 à 16:30
10 sept. 2010 à 16:30
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 ;-))
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
10 sept. 2010 à 18:03
10 sept. 2010 à 18:03
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
:-))
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?
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
11 sept. 2010 à 09:23
11 sept. 2010 à 09:23
As-tu bien mis le paramètre "-t" dans le fichier de connexion ???
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" ???
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
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 :(
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2010 à 17:54
12 sept. 2010 à 17:54
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 :
;-))
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
...
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2010 à 18:42
12 sept. 2010 à 18:42
Et est-ce que sans le paramètre "-t" la connexion s'établie ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2010 à 19:54
12 sept. 2010 à 19:54
Je récapitule :
Depuis un terminal (shell_1) tu crées un fichier (appelé connexion) avec :
Tu génères le script avec :
et tu lances le script depuis "shell_1" :
La connexion s'établie et tu te retrouves avec un prompt sur "serveur_2".
Tu ouvres un nouveau terminal (shell_2) et tu tapes :
Et tu te retrouves avec l'erreur :
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" ???
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" ???
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.
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
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
12 sept. 2010 à 20:38
12 sept. 2010 à 20:38
Happy for you ;-))