J'avais l'habitude ssh -L 10002:192.168.0.30:10002 192.168.1.135
d'établir une redirection de port, mais je dois maintenant la supprimer.
Comment puis-je faire cela?
J'avais l'habitude ssh -L 10002:192.168.0.30:10002 192.168.1.135
d'établir une redirection de port, mais je dois maintenant la supprimer.
Comment puis-je faire cela?
Réponses:
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>
kill -9
avant d'avoir essayé kill
. De nombreux processus auront des gestionnaires de signaux qui nettoieront leur utilisation des ressources, fermeront les connexions proprement et d'autres tâches de pré-arrêt. Si vous tuez avec -9, le processus meurt immédiatement sans nettoyage. Tuer sans -9 va travailler la plupart du temps.
kill -9
sans raison, c'est comme utiliser un fusil de chasse pour tuer un moustique. :)
pgrep ssh | xargs kill
. N'utilisez pas -9
pour rien en effet
ssh
commande, ou que toutes les ssh
commandes que vous exécutez sont bonnes à tuer. Ce n’est pas une bonne hypothèse générale.
ssh
instances sur plusieurs serveurs distants à tout moment, certaines sans ma participation active directe. Par exemple, le mode Tramp Emacs ouvre une ssh
connexion en coulisse lorsque je visite un tampon distant. Certaines personnes utilisent des systèmes de fichiers en espace utilisateur qui font quelque chose de similaire. Ce n'est pas du tout rare. En fait, je supposerais ssh
qu'un seul utilisateur, une seule instance soit un cas d'utilisation marginale d'une minorité. Si cela fonctionne pour vous, tant mieux, mais ce n'est pas un bon conseil général.
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, mais 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. Là encore, cela ne fonctionnera que si le multiplexage SSH est utilisé pour la connexion à 192.168.1.135 .
ssh -O exit 192.168.1.135
.
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 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.
Vous pouvez entrer dans 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 simplement 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 une 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
~C escape not available to multiplexed sessions
. Si c'est le cas, voir l'excellente réponse de a3nm.
Warning: remote port forwarding failed for listen port
message.