web-dev-qa-db-fra.com

Transfert de port SSH sans session

J'essaie de transférer mon port 8085 qui est un port de flux de caméra en direct pour un mini serveur HTTP, sur un serveur distant.

Ma commande que j'utilise est comme ça:

ssh -R $rport:dc-bb7925e7:$camport -p 25 [email protected]

Comme cette commande est en ce moment, elle transforme le port et je peux voir le flux en direct sur le serveur distant en allant à localhost: 8085, mais le problème est que sur le client, une session TTY est ouverte qui empêche tous les scripts supplémentaires. de courir.

J'ai donc essayé d'utiliser SSH en arrière-plan avec:

ssh -Nf -R $rport:dc-bb7925e7:$camport -p 25 [email protected]

Cela ne fonctionne pas comme il semble que la connexion soit fermée. Le transfert de port est utilisé dans un script où le script évalue une condition if/alors/d'autre, puis s'exécute à l'avant. Transférer ce port n'est pas supposé d'arrêter tous les autres scripts. Il devrait simplement transmettre le port puis passer à autre chose, tout en le maintenant ouvert.

Qu'est-ce que je fais mal ou y a-t-il d'autres drapeaux pouvant être utilisés?

9
RootWannaBe

-N N'est pas de fond, ce n'est pas une commande à distance. Tu veux quelque chose comme:

ssh -R $rport:dc-bb7925e7:$camport -p 25 [email protected]&

Notez l'ampersand fuite, qui va de l'arrière-plan la commande.

Vous voudrez probablement écrire une certaine logique pour revenir et fermer la session SSH lorsque vous avez terminé.

1
ernie

Cela fonctionne même sur un Mac

ssh -o ControlPersist=yes -fNT -L 3306:127.0.0.1:3306 example.com

Vous pouvez utiliser et avec cela et il ne gelera pas en arrière-plan, mais il sera automatiquement en arrière-plan après la connexion, donc ne pas utiliser et.

-f le met en arrière-plan après que Login -N désactive automatiquement l'exécution de l'utilisateur distant shell -t désactive le pseudo-trt local

-o Controlpersist = Oui empêche la connexion d'être fermée lors de la combinaison avec Controlmaster = Auto, qui se trouve être dans certains utilisateurs/install/distros ~/.ssh/config

Ce serait un moyen de chaîner plusieurs connexions SSH et en avant avec une doublure ou un script Bash.

1
Ray Foss