Bonjour,
Je cherche à utiliser nc à travers un tunnel ssh.
Netcat fonctionne sur un modèle client-serveur. Comme je ne veux pas avoir un process nc qui tourne sans arrêt sur le serveur, je veux me connecter en ssh sur la machine distante et lancer la commande d'écoute.
Parallèlement au transfert, je veux utiliser md5sum pour être sûr du fichier à l'arrivée.
Les données à transférer arrivent sur STDIN du script, et doivent ressortir dans un fichier sur l'ordinateur cible.
Quand je lance mon script, je n'ai que quelques ko qui sont transférés.
Mon script :
#!/bin/sh
FIFO=/tmp/fifo.$$
mkfifo $FIFO
ssh -nN -L 5000:serveur2:5001 serveur2 &
SSHTUNNELPID=$!
ssh serveur2 "nc -l -p 5001 > /tmp/fichier" &
sleep 5
md5sum <$FIFO &
tee $FIFO 2>/dev/null | nc -s 127.0.0.1 localhost 5000
kill -TERM $SSHTUNNELPID &>/dev/null
ssh serveur2 "md5sum /tmp/fichier"
rm $FIFO &>/dev/null
Si je n'utilise pas de sleep, alors je n'ai aucun octet de transféré.
sinon, ça varie (132Ko ou 140Ko).
Si je lance la commande
nc -l -p à partir du serveur et que je la supprime du script, le transfert se fait correctement.
Quelqu'un aurait une petite idée?
Merci.
Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"
Poste le Friday 8 June 2007 13:44:23