7 votes

Comment se connecter à une session SSH qui a été mise en arrière-plan avec -f -N ?

Je travaille sur un projet où j'ai besoin de pivoter à partir d'une machine en utilisant des chaînes de proxy. Je me connecte donc à un système et je lie un port local comme ceci...

ssh -f -N -D 9000 user@host.com

ce qui me renvoie à mon invite de commande après avoir ouvert la connexion. Je peux alors utiliser quelque chose comme proxychains pour exécuter des commandes par l'intermédiaire de host.com .

Ma question est la suivante : comment puis-je me connecter/interagir avec cette même session afin d'obtenir un Shell distant sur host.com ? La façon dont je le fais maintenant est d'ouvrir une autre session ssh avec un simple ssh user@host.com mais je pense qu'il doit y avoir un moyen de n'utiliser que la première session que j'ai ouverte.

11voto

James Mertz Points 390

S'il n'a pas été créé avec le multiplex activé, vous ne pouvez pas.

La prochaine fois, démarrer la session en arrière-plan comme ceci :

ssh -f -N -M -S ~/.ssh/S.user@host.com -D 9000 user@host.com

Aquí -M active le mode maître multiplex, et -S définit le chemin du socket.

Vous pouvez maintenant utiliser ssh -S ~/.ssh/S.user@host.com dummyhost pour ouvrir une deuxième session sur la même connexion. Il est possible de contrôler le maître en lui donnant -O exit , -O check et diverses autres options. (Triste, -O forward est un ajout très récent).

Pour rendre cela automatique, vous pouvez utiliser les options suivantes dans .ssh/config :

Host *
    ControlPath ~/.ssh/S.%l.%r@%h:%p
    ControlMaster auto
    ControlPersist 10m

Réglage de ControlPath signifie que vous n'avez pas besoin de spécifier -S à chaque fois.

Réglage de ControlMaster auto signifie que chaque nouvelle connexion se poursuivra automatiquement en arrière-plan en tant que maître multiplex. (Sans cela, vous pouvez toujours démarrer de nouveaux maîtres avec ssh -fNM host ).

Réglage de ControlPersist 10m signifie que les maîtres automatiques resteront en place pendant 10 minutes lorsqu'ils n'ont pas de sessions actives. (Il s'agit d'une option récemment ajoutée).

Notez que les transferts par lots sur une connexion multiplex feront que les sessions interactives deviendront vraiment lentes...

0voto

porto alet Points 315

Laissez de côté les paramètres -f (Background SSH) et -N (Do not execute remote command), utilisez donc

ssh -D 9000 user@host.com

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X