Ajout de transferts de ports par programme sur une session ControlMaster SSH

Je viens de découvrir la fonctionnalité ControlMaster / ControlPath d'OpenSSH, qui vous permet d'utiliser une seule connexion SSH pour exécuter plusieurs terminaux.

Comme j'utilise souvent SSH pour utiliser le renvoi de port pour obtenir des sessions VNC cryptées et authentifiées, j'ai immédiatement reconnu que vous ne pouvez pas ajouter de renvoi de port à un serveur distant auquel vous avez déjà une connexion établie. C'est une merde.

Parfois, plus tard, j'ai découvert que vous pouvez contourner cette limitation en tapant ~ C dans une session de terminal SSH en cours d'exécution. Cela ouvre une ligne de commande qui vous permet d'ajouter ou de supprimer des renvoi de port.

Ma question est maintenant: Comment puis-je ajouter des renvois de ports sur une session SSH existante qui utilise la fonction ControlMaster / ControlPath, sans avoir besoin d'accéder à une session de terminal à l'intérieur de cette session SSH. J'ai besoin de cela pour activer mon script qui démarre une connexion VNC tunneled sécurisée pour moi d'ajouter et ensuite supprimer ses renvois de port.

(Je sais que je pourrais utiliser un multiplexeur terminal tel que GNU Screen ou tmux, en fait je le fais déjà. Mais j'aime l'idée d'utiliser une seule session SSH pour des raisons multiples.)

One Solution collect form web for “Ajout de transferts de ports par programme sur une session ControlMaster SSH”

C'est assez simple, en fait. Il suffit d'ajouter le ctl_cmd -O forward à votre commande existante, ainsi:

 ssh -M -L5555:localhost:22 remotehost 

devient:

 ssh -O forward -M -L5555:localhost:22 remotehost 

La page de manuel ssh traite de l'option -O ctl_cmd :

 -O ctl_cmd Control an active connection multiplexing master process. When the -O option is specified, the ctl_cmd argument is interpreted and passed to the master process. Valid commands are: “check” (check that the master process is running), “forward” (request forwardings without command execution), “exit” (request the master to exit), and “stop” (request the master to stop accepting further multiplexing requests). 

Ceci, bien sûr, suppose que vous avez activé ControlMaster yes dans votre fichier ~/ssh/config ou -M sur la ligne de commande.

  • Serveur Windows VNC avec interface de command line
  • Délai de session TigerVNC
  • Hébergement Java et server de messagerie sur VPS
  • UltraVNC, DynDNS, plusieurs ordinateurs dans le LAN?
  • Serveur Mac OSX VNC - Puis-je voir si quelqu'un d'autre est connecté?
  • Modifier l'adresse d'écoute VNC dans Libvirt sans redémarrer VM
  • Est-il possible d'exécuter un server VNC sans GPU sur linux?
  • Linux: Comment presser la key Sysreq dans VNC / Vsphere Client?
  • Impossible de créer VM avec virt-install sur Debian wheezy
  • Terminal Server pour Linux
  • Définir le mot de passe VNC
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.