J'ai utilisé ssh -L 10002:192.168.0.30:10002 192.168.1.135
pour établir le transfert de port, mais je dois maintenant le supprimer.
Comment puis-je faire cela?
Si vous utilisez Linux, vous pouvez tuer le processus en:
ps aux | grep ssh
et ensuite utiliser
kill <id>
Pour tuer le processus.
Si la commande kill n’est pas réussie, vous pouvez essayer
kill -9 <id>
Lorsque vous utilisez le multiplexage ssh, il est souvent indésirable de tuer le processus ssh (cela tue toutes les connexions ouvertes avec cet hôte) et vous ne pouvez pas accéder facilement à l’échappement car "échappement non disponible pour les sessions multiplexées". La bonne façon consiste alors à exécuter l'analogue de la commande de transfert que vous souhaitez annuler, en ajoutant -O cancel
. Par exemple:
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
Cela désactivera cette redirection de port sans mettre fin à la session. Encore une fois, cela ne fonctionnera que si le multiplexage SSH est utilisé pour la connexion à 192.168.1.135 .
Vous pouvez utiliser la "touche d'échappement" (généralement ~) suivie de C pour obtenir un cli vers votre connexion. Vous pouvez à partir de là supprimer des tunnels sans prendre votre connexion.
Comment annuler un port transféré dans une session SSH déjà en cours d'exécution:
-KL port
Vous devriez voir ceci:
ssh> -KL 10002
Canceled forwarding.
Vous pouvez entrer une console interactive en tapant ~C (majuscule "C"). Cela vous permet d'ajouter et de supprimer dynamiquement les redirections de ports (entre autres).
Cette séquence doit venir juste après un retour chariot/nouvelle ligne. Donc, dans le doute, tapez juste Enter~C (en séquence).
Si vous ne voyez pas les caractères apparaître sur la console, vous le faites correctement :)
Vous devriez maintenant voir un ssh>
Invite.
Pour supprimer le port, entrez simplement -KL 10002
suivi de Enter (où 10002
est votre port transféré).
L'inverse - l'ajout d'un nouvel avant - peut être fait comme ceci (du début à la fin):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter