Existe-t-il un moyen de se retirer de toutes les connexions SSH et de fermer PuTTY en "un coup"? Je travaille dans Windows 7 et j'utilise PuTTY to SSH sur divers hôtes Linux.
Un exemple de la façon dont je me retrouve à travailler:
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.
Par ci-dessus, est-il possible de passer de host8 à la fermeture de PuTTY en une seule fois? Parfois, je me retrouve jusqu'à 5 ou 10 hôtes en profondeur. Je me rends compte que je peux cliquer sur le X pour fermer la fenêtre PuTTY, mais j'aime m'assurer que mes connexions SSH se ferment correctement en utilisant la commande exit. Je me rends également compte que je demande des conseils pour augmenter la paresse. Je vais simplement l'écrire comme «comment puis-je être plus efficace».
ctrl+d
plusieurs fois?Réponses:
Essayez d'utiliser la
ssh
séquence d'échappement de fin de connexion.Dans la
ssh
session, entrez~.
(point tilde). Vous ne verrez pas les caractères lorsque vous les tapez, mais la session se terminera immédiatement.De
man 1 ssh
la source
~.
dans un alias ou une fonction? Juste pour lui donner un nom facile à retenirexitall
. Maintenant, je demande beaucoup trop :). J'ai essayé quelques trucs~/.bashrc
mais j'arrive-bash: ~.: command not found
. Je suppose que bash le voit comme une chaîne et non comme une séquence d'échappement provenant directement du clavier.ctrl+d
solution, mais cela répond plus directement à ma question. Merci a tous.~.
, il est géré parssh
lui-même.ssh
client CLI a besoin de cette technique car il s'agit de CLI. PuTTY est une application graphique et il existe des moyens beaucoup plus conviviaux de faire ce genre de choses sur une interface graphique.Appuyez simplement sur CtrlDet il vous déconnectera pour maintenir Ctrl et appuyez sur "d" jusqu'à ce que la fenêtre disparaisse.
la source
EOT
. Et mêmebash
l'ignorera au milieu d'une ligne de commande. Essayez-le vous-même: tapez une seule lettre et essayezCtrl-D
.logout
.Fermez simplement PuTTY. ( Alt+ F4par défaut IIRC.)
la source
Une autre façon est de faire
function
pourssh
:Malheureusement, il fermera également toujours la connexion et la déconnexion de la console une fois que vous aurez terminé 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 la fonction dans ~ / .bashrc ou ~ / .wwhat_shell_you_use_rc.
Cela ressemble un peu à un hack sale par rapport à la façon dont uther.
la source
function
n'est pas POSIX - supprimez simplement le mot-clé, et vous devez citer$@
correctement, ou vos arguments seront passés après le fractionnement du mot (mauvais).Ou vous pouvez utiliser
exec
pour remplacer votre processus shellssh
lors du saut vers un autre hôte:5 niveaux de profondeur n'est 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 de puttys permet d'ouvrir rapidement une nouvelle session. Si vous avez un serveur "par défaut" et acceptez 1 saut depuis celui-ci, la fonction "Duplicate Session" est très utile. Surtout lors de l'utilisation de l'authentification pubkey.
la source
Si cela ne vous dérange pas de faire un peu de script, vous pouvez le faire.
Script: myssh.sh
Appelez via la commande dot:
Si vous souhaitez quitter un niveau:
Si vous souhaitez tout quitter:
la source
La déconnexion dans la fenêtre du terminal de mastic le fait pour moi:
Ferme la connexion ssh et quitte l'application Putty.
la source
ssh host1
, puis, à partir dehost1
, le faitssh host8
. À ce stade, alogout
ferait la même chose que laexit
commande qu'ils connaissent déjà - sortirhost8
et les replacerhost1
.