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.
- Est-il possible d'utiliser le Remote Desktop d'Apple comme visionneuse VNC?
- Veuillez reorder une solution d'access à distance sans fil gratuite pour un réseau interne
- Xen se connecte à dom0 avec vnc?
- Comment protéger un server OS X d'une connection physique non autorisée?
- KVM / QEMU: connectez-vous à VM sans GUI
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.)
- Le service server X11VNC s'arrête automatiquement après la première connection se termine
- Les sessions VNC écrasées détectent et tuent
- login VNC via machine proxy SSH
- VncServer ne peut pas redémarrer à cause de Xvnc
- Linux RDP / VNC / SSH Client
- Démarrez / Arrêtez / Redémarrez les servers vnc individuels définis dans / etc / sysconfig?
- VNC sur Vista
- VNC Viewer affiche des colors bizarres lorsqu'il est connecté à OSX
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.