J'avais l'habitude ssh -L 10002:192.168.0.30:10002 192.168.1.135d'é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.135d'é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 -9avant 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 -9sans raison, c'est comme utiliser un fusil de chasse pour tuer un moustique. :)
pgrep ssh | xargs kill. N'utilisez pas -9pour rien en effet
sshcommande, ou que toutes les sshcommandes que vous exécutez sont bonnes à tuer. Ce n’est pas une bonne hypothèse générale.
sshinstances sur plusieurs serveurs distants à tout moment, certaines sans ma participation active directe. Par exemple, le mode Tramp Emacs ouvre une sshconnexion 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 sshqu'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 portVous 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 10002suivi de Enter(où 10002est 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 portmessage.