it-swarm-eu.dev

ukončete všechna připojení SSH jedním příkazem a ukončete PuTTY

Existuje způsob, jak se zbavit všech spojení SSH a zavřít PuTTY v "one shot"? Pracuji ve Windows 7 a používám PuTTY k SSH pro různé hostitele Linuxu.

Příklad, jak se mi zdá, že pracuji:

SSH to Host1 with PuTTY...
[email protected]:~> #...doin some work...ooh! need to go check something on Host8...
[email protected]:~> ssh Host8
[email protected]:~> #...doin some work...OK time for lunch. lets close PuTTY...
[email protected]:~> exit
[email protected]:~> exit
PuTTY closes.

Nahoře, nějaký způsob, jak se dostat z Host8 k uzavření PuTTY v jednom výstřelu? Někdy se ocitám v hloubce až 5 nebo 10 hostitelů. Uvědomuji si, že mohu kliknutím na X zavřít okno PuTTY, ale rád se ujistím, že moje spojení SSH jsou řádně uzavřena pomocí příkazu exit. Také si uvědomuji, že žádám o tipy, jak zvýšit lenost. Jen to odepíšu jako „jak mohu být efektivnější“.

20
Banjer

Zkuste použít sekvenci escape ukončení připojení ssh.

V relaci ssh zadejte ~. (tilda tečka). Při psaní se znaky nezobrazí, ale relace se okamžitě ukončí.

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

Z 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).
30
George M

Stačí stisknout CtrlD a odhlásí vás tam pro pozastavení ctrl a stisknete „d“, dokud okno nezmizí.

13
Joe

Jednoduše zavřete PuTTY. (Alt+F4 ve výchozím nastavení IIRC.)

Nebo můžete použít exec, abyste nahradili proces Shell ssh, když skočíte na jiného hostitele:

SSH to Host1 with PuTTY...
[email protected]:~> #...doin some work...ooh! need to go check something on Host8...
[email protected]:~> exec ssh Host8
[email protected]:~> #...doin some work...OK time for lunch. lets close PuTTY...
[email protected]:~> exit
PuTTY closes.

Hloubka 5 úrovní není hezká, protože provoz projde všemi ostatními servery. Z tohoto důvodu nedoporučuji pouze zabít PuTTY nebo ssh (~.), Protože (v závislosti na tom, co děláte) by to mohlo vést k osamoceným procesům na serverech.

Lepší je vyzkoušet a být méně „líný“. Klepnutím pravým tlačítkem myši na záhlaví puttys se rychle otevře nové relace. Pokud máte „výchozí“ server a přijmete 1 skok, je velmi užitečná funkce „Duplikovat relaci“. Obzvláště při použití autentizace pomocí pubkey.

2
MattBianco

Dalším způsobem je vytvoření function pro ssh:

   function ssh(){ /usr/bin/ssh [email protected] ; exit ; } 

Po dokončení práce na vzdáleném systému bohužel také vždy ukončí připojení a odhlášení z konzole.

Všimněte si, že tuto funkci potřebujete na všech svých serverech, jinak tento hack nebude fungovat. Btw můžete vždy vložit funkci do ~/.bashrc nebo ~/.whatever_Shell_you_use_rc.

Vypadá to trochu špinavý hack ve srovnání s naprostým způsobem.

2
rush

Pokud vám nevadí trochu skriptování, můžete to udělat.

Skript: myssh.sh

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

Volání pomocí tečky:

$ . myssh [email protected]

Pokud chcete opustit jednu úroveň:

$ exit

Pokud chcete ukončit všechny:

$ exit 5
2
Moonthief