Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1984 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash-expect] Redirection de port automatique avec SSH

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[bash-expect] Redirection de port automatique avec SSH

n°1250224
The Mauler
Posté le 16-11-2010 à 09:25:49  profilanswer
 

Bonjour,
 
J'ai cherché un peu partout mais je ne trouve pas de solution à mon problème :
 
J'ai un script bash qui doit ouvrir un tunnel via SSH vers une autre machine puis exécuter des commandes qui y feront transiter des infos par ce tunnel. Jusque là, pas de souci, j'utilise la commande suivante :  

Code :
  1. /usr/bin/ssh -f -L 7777:127.0.0.1:7777 user@192.168.0.1 sleep 5


Le -f permet à SSH de passer en arrière plan après la mise en place du tunnel (je suis donc assuré que le tunnel est en place lorsque les commandes exécutées après SSH sont exécutées, chose qui ne serait pas possible avec un & ).
 
Le problème est que je souhaite avoir une authentification automatique avec mot de passe (et sans utiliser de clé). La seule solution semble être l'utilisation d'expect pour injecter le mot de passe via la commande "send". Or, si ceci fonctionne parfaitement dans le cas d'un accès SSH classique (pour taper des commandes à distance), ceci ne fonctionne pas lorsqu'on souhaite exécuter SSH en arrière plan (pour un tunnel par exemple).
 
J'ai essayé avec le script de base suivant :

Code :
  1. #!/usr/bin/expect
  2. set force_conservative 1
  3. spawn /usr/bin/ssh -f -L 7777:127.0.0.1:7777 user@192.168.0.1 sleep 5
  4. expect "password: $"
  5. send "monmotdepasse\r"


 
- Résultat : SSH est tué quelque soit la valeur mise à "sleep"
- En ajoutant "interact" à la fin, SSH n'est pas tué mais le script se retrouve bloqué pendant les n secondes du sleep malgré le -f . Chose étrange : en regardant la liste des processus, j'ai un SSH zombi qui se balade en plus du SSH que j'ai lancé.
- Si je supprime le -f en laissant "interact" : le processus zombi disparait mais le script reste bloqué (là, c'est logique !)
 
Existe-t'il un moyen d'envoyer SSH en arrière plan tout en faisant un login automatique sans clé avec expect et de manière synchronisée ?
 
Merci d'avance  :)


Message édité par The Mauler le 16-11-2010 à 09:26:11
mood
Publicité
Posté le 16-11-2010 à 09:25:49  profilanswer
 

n°1250261
roondar
Posté le 16-11-2010 à 10:29:39  profilanswer
 

Moi j'arrivais à le faire avec  "sshpass", si j'amais ca peut t'aider.

n°1250314
The Mauler
Posté le 16-11-2010 à 13:59:46  profilanswer
 

Merci, je ne connaissais pas l'existence de ce prog. Mais je viens d'essayer et j'ai le même problème qu'avec expect : création d'un processus zombi et ssh qui attend la fin de l'exécution de "sleep" avant d'exécuter la commande suivante. Il y a probablement un bout de code au niveau de ssh qui provoque ce problème (peut être une sécurité ?) lors de l'utilisation de l'option -f.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash-expect] Redirection de port automatique avec SSH

 

Sujets relatifs
Script Bash: cut/sed?Script Bash : Gestion des erreurs
Problème d'exécution script bashFaire du tunnel SSH via https
taggage ID3 automatique avec CDDBSymbole % sous SSH ?
[Bash] awk : split qui ne fonctionne pas :(Redirection de port sortant
Plus de sujets relatifs à : [bash-expect] Redirection de port automatique avec SSH


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR