Existe-t-il un moyen de se retirer de toutes les connexions SSH et de fermer PuTTY en « one shot »? Je travaille sous Windows 7 et jutilise PuTTY en SSH sur divers hôtes Linux.

Un exemple de la façon dont je travaille:

SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> ssh host8 banjer@host8:~> #...doin some work...OK time for lunch. lets close putty... banjer@host8:~> exit banjer@host1:~> exit Putty closes. 

Comme ci-dessus, comment passer de lhôte8 à la fermeture de PuTTY en un seul coup? Parfois, je me retrouve jusquà 5 ou 10 hôtes de profondeur. Je me rends compte que je peux cliquer sur le X pour fermer la fenêtre PuTTY, mais jaime massurer que mes connexions SSH se ferment correctement en utilisant la commande exit. Je me rends compte également que je « demande des conseils sur la façon daugmenter la paresse. Je vais simplement lécrire comme » comment puis-je être plus efficace « .

Commentaires

  • Pas directement ce que vous demandez, mais que diriez-vous dappuyer plusieurs fois sur ctrl+d?
  • @UlrichDangel Je nai jamais utilisé cela auparavant, mais aussi un moyen rapide de se retirer rapidement des connexions.
  • Est-ce que vous imbriquez vraiment des sessions SSH de 5 à 10 niveaux de profondeur? Vous rendez-vous compte que ‘ crée un tunnel alambiqué qui fait rebondir tous les paquets de votre session ssh via tous ces hôtes? Pourriez-vous faire disparaître le problème en nimbriquant simplement pas les sessions ssh?
  • @ jw013 Non, je ne men suis pas rendu compte, mais cela a du sens. Honnêtement, 5 à 10 niveaux était une exagération, mais jessayais dillustrer ma question de  » comment sortir proprement de Putty dun seul coup.  »

Réponse

Essayez dutiliser le ssh séquence déchappement de fin de connexion.

Dans la session ssh, saisissez ~. (point tilde). Vous « ne verrez pas les caractères lorsque vous les saisissez, mais la session se terminera immédiatement.

$ ~. $ Connection to me.myhost.com closed. 

De man 1 ssh

The supported escapes (assuming the default ‘~’) are: ~. Disconnect. ~^Z Background ssh. ~# List forwarded connections. ~& Background ssh at logout when waiting for forwarded connection / X11 sessions to terminate. ~? Display a list of escape characters. ~B Send a BREAK to the remote system (only useful for SSH protocol version 2 and if the peer supports it). ~C Open command line. Currently this allows the addition of port forwardings using the -L, -R and -D options (see above). It also allows the cancellation of existing remote port-forwardings using -KR[bind_address:]port. !command allows the user to execute a local command if the PermitLocalCommand option is enabled in ssh_config(5). Basic help is available, using the -h option. ~R Request rekeying of the connection (only useful for SSH protocol version 2 and if the peer supports it). 

Commentaires

  • Assez cool! Nimporte quelle façon de mettre ~. en un alias ou une fonction? Juste pour lui donner un nom facile à retenir comme exitall. Maintenant, je ‘ m demande pour beaucoup trop :). Jai essayé quelques trucs dans ~/.bashrc mais obtenez -bash: ~.: command not found. Je suppose que bash le voit comme une chaîne et non une séquence déchappement provenant directement du clavier.
  • Jaime aussi la solution ctrl+d, mais cela répond plus directement à ma question. Merci à tous.
  • @Banjer bash ne voit jamais ~., il ‘ est géré par ssh lui-même .
  • @Gilles gotcha, ça a du sens.
  • Et il ny a ‘ aucune garantie ee que PuTTY fait également cela. Le client CLI ssh a besoin de cette technique car il ‘ s CLI. PuTTY est une application graphique et il existe des moyens beaucoup plus conviviaux de faire cela sur une interface graphique.

Réponse

Appuyez simplement sur Ctrl D et il vous déconnectera pour maintenir ctrl et appuyez sur « d » jusquà ce que la fenêtre disparaisse.

Commentaires

  • Malheureusement, cela ne fonctionne ‘ pas universellement. Toute session exécutant un éditeur ou un autre outil plein écran est susceptible dignorer EOT. Et même bash lignorera au milieu dune ligne de commande. Essayez-le vous-même: tapez une seule lettre et essayez Ctrl-D.
  • Que fait Ctrl + D, je veux dire est-ce quil existe en toute sécurité ou tue simplement le processus?
  • Il sort en toute sécurité. Cest un raccourci shell qui revient à taper ‘ exit ‘ et à appuyer sur Entrée.
  • En fait le mien ( windows git bash & ubuntu bash) émet un logout.
  • oui, je crois que exit appelle également la déconnexion en tant que ssh les connexions ne sont généralement pas des sessions de connexion.

Réponse

Fermez simplement PuTTY. ( Alt + F4 par défaut IIRC.)

Réponse

Une autre méthode consiste à créer function pour ssh:

 function ssh(){ /usr/bin/ssh $@ ; exit ; } 

Malheureusement, il fermera toujours la connexion et la déconnexion de la console une fois que vous aurez fini de travailler sur le système distant.

Notez que vous devez faire une telle fonction sur tous vos serveurs, sinon ce hack ne fonctionnera pas . Btw vous pouvez toujours mettre une fonction dans ~ / .bashrc ou ~ / .whatever_shell_you_use_rc.

Cela a lair un peu sale hack comparé à la manière duther.

Commentaires

  • function nest pas POSIX – supprimez simplement le mot-clé et vous devez citer $@ correctement, ou vos arguments seront passés après la séparation des mots (mauvais).

Réponse

Ou vous pouvez utiliser exec pour remplacer votre processus shell avec ssh lors du passage à un autre hôte:

SSH to host1 with PuTTY... banjer@host1:~> #...doin some work...ooh! need to go check something on host8... banjer@host1:~> exec ssh host8 banjer@host8:~> #...doin some work...OK time for lunch. lets close putty... banjer@host8:~> exit Putty closes. 

5 niveaux de profondeur, ce nest pas joli, car le trafic passera par tous les autres serveurs. Pour cette raison, je ne recommande pas de simplement tuer PuTTY ou ssh (~.), Car (selon ce que vous faites) cela pourrait entraîner des processus orphelins sur les serveurs.

Mieux vaut essayer dêtre moins « . paresseux « . Un clic droit sur la barre de titre puttys permet douvrir une nouvelle session rapidement. Si vous avez un serveur » par défaut « et acceptez 1 saut de celui-ci, la fonction » Dupliquer la session « est très utile. Surtout lorsque vous utilisez lauthentification par clé de pub. p>

Réponse

Si cela ne vous dérange pas de faire un petit script, vous pouvez le faire.

Script: myssh .sh

#!/bin/bash ssh $1 if [ $? -eq 5 ]; then exit 5 fi 

Appelez via la commande dot:

$ . myssh [email protected] 

Si vous le souhaitez quitter un niveau:

$ exit 

Si vous voulez tout quitter:

$ exit 5 

Commentaires

  • Bien sûr, vous devez le copier sur tous les ordinateurs à partir desquels vous pouvez effectuer un ssh. De plus, ne serait-il pas ‘ plus simple de définir simplement une fonction shell appelée ssh? Cela éviterait la période précédente, etc.

Réponse

Taper déconnexion dans la fenêtre du terminal putty le fait pour me:

richard@forevermore:~ > logout 

Ferme la connexion ssh et quitte lapplication Putty.

Commentaires

  • Je crois que vous navez ‘ pas lu la question correctement. OP fait ssh host1, puis, à partir de host1, fait ssh host8. À ce stade, une logout ferait la même chose que la commande exit quils connaissent déjà – sortez de host8 et remettez-les dans host1.
  • Ok, je vois, mon mal.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *