Existuje způsob, jak ze všech připojení SSH vycouvat a zavřít PuTTY v „jedné střele“? Pracuji v systému Windows 7 a používám PuTTY k SSH k různým hostitelům Linuxu.
Příklad způsobu, jakým sám pracuji:
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.
Dle výše, existuje způsob, jak se dostat z host8 na zavření PuTTY na jeden výstřel? Někdy se ocitnu v hloubce až 5 nebo 10 hostitelů. Uvědomuji si, že můžu kliknutím na X zavřít okno PuTTY, ale rád bych se ujistil, že se moje SSH spojení správně uzavře pomocí příkazu exit. Uvědomuji si také, že žádám o tipy, jak zvýšit lenost. Odpíšu to pouze jako „jak mohu být efektivnější“.
Komentáře
- Ne přímo, na co se ptáte, ale co takhle několikrát stisknout
ctrl+d
? - @UlrichDangel To jsem nikdy předtím nepoužíval, ale také rychlý způsob rychlého zpětného připojení.
- Opravdu vnořujete relace ssh do hloubky 5 až 10 úrovní? Uvědomujete si, že ‚ vytváří spletitý tunel, který odráží všechny pakety ve vaší relaci ssh přes všechny tyto hostitele? Mohli byste problém odstranit jednoduše tím, že nebudete vnořovat relace ssh?
- @ jw013 Ne, neuvědomil jsem si to, ale dává to smysl. Upřímně řečeno, 5-10 úrovní bylo přehnané, ale snažil jsem se ilustrovat mou otázku “ jak čistě opustit Putty jedním tahem. “
Odpověď
Zkuste použít ssh
úniková sekvence ukončení připojení.
V relaci ssh
zadejte ~.
(vlnovka). Při psaní znaky neuvidíte, ale relace bude okamžitě ukončena.
$ ~. $ Connection to me.myhost.com closed.
Od 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).
Komentáře
Odpovědět
Stačí stisknout Ctrl D a odhlásí vás tam pro podržení ctrl a stiskněte „d“, dokud okno nezmizí.
Komentáře
- Je smutné, že to ‚ nefunguje univerzálně. Jakákoli relace spuštěná v editoru nebo jiném nástroji na celou obrazovku pravděpodobně
EOT
bude ignorovat. A dokonce ibash
jej uprostřed příkazového řádku ignoruje. Vyzkoušejte sami: zadejte jedno písmeno a zkusteCtrl-D
. - Co dělá Ctrl + D, myslím tím, že bezpečně existuje nebo jen zabije proces?
- Bezpečně vystupuje. Jedná se o zástupce prostředí, který je stejný jako psaní ‚ exit ‚ a stisknutí klávesy enter.
- Vlastně moje ( windows git bash & ubuntu bash) vydá
logout
. - ano, věřím, že exit také volá odhlášení jako ssh připojení nemají tendenci být relacemi přihlášení.
Odpověď
Jednoduše zavřete PuTTY. ( Alt + F4 ve výchozím nastavení IIRC.)
Odpověď
Další možností je vytvořit function
pro ssh
:
function ssh(){ /usr/bin/ssh $@ ; exit ; }
Bohužel také vždy ukončí připojení a odhlášení z konzoly po dokončení práce na vzdáleném systému.
Všimněte si, že tuto funkci musíte provést na všech svých serverech, jinak tento hack nebude fungovat . Btw můžete vždy dát funkci do ~ / .bashrc nebo ~ / .whatever_shell_you_use_rc.
Vypadá to trochu špinavě, hack ve srovnání s úplným způsobem.
Komentáře
-
function
není POSIX – stačí odstranit klíčové slovo a je třeba uvést$@
správně, jinak budou vaše argumenty předány po rozdělení slova (špatné).
Odpověď
Nebo můžete použít exec
k nahrazení shell proces s ssh
při přechodu na jiného hostitele:
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 úrovní hluboko 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 mít za následek osiřelé procesy na serverech.
Lepší je pokusit se být méně “ líný „. Kliknutím pravým tlačítkem myši na záhlaví puttys je otevření nové relace rychlé. Pokud máte“ výchozí „server a přijmete od něj 1 skok, je funkce“ Duplicate Session „velmi užitečná. Zejména při použití autentizace pomocí pubkey.
Odpověď
Pokud vám nevadí trochu skriptovat, můžete to udělat.
Skript: myssh .sh
#!/bin/bash ssh $1 if [ $? -eq 5 ]; then exit 5 fi
Volání pomocí příkazu dot:
$ . myssh [email protected]
Pokud chcete opustit jednu úroveň:
$ exit
Pokud chcete ukončit všechny:
$ exit 5
komentáře
- Samozřejmě byste jej zkopírovali do všech počítačů, ze kterých jste kdy mohli ssh. Nebylo by snadnější ‚ definovat funkci shellu ssh? Tím by se předešlo předcházejícímu období atd.
Odpověď
Psaní odhlášení v okně terminálu tmelu to dělá pro já:
richard@forevermore:~ > logout
Ukončí připojení ssh a ukončí aplikaci Putty.
Komentáře
- Věřím, že jste ‚ otázku nečetli správně. OP dělá
ssh host1
a poté zhost1
dělássh host8
. V tom okamžiku bylogout
udělal totéž jako příkazexit
, který již znají – výstup zhost8
a vložte je zpět dohost1
. - Dobře, chápu, špatně.
~.
do aliasu nebo funkce? Jen pro snadné pojmenování, jako jeexitall
. Nyní se ‚ ptám příliš mnoho :). Zkoušel jsem několik věcí v~/.bashrc
, ale získejte-bash: ~.: command not found
. Myslím, že bash to vidí jako řetězec a ne úniková sekvence přicházející přímo z klávesnice.ctrl+d
, ale toto odpovídá na mou otázku příměji. Díky všem.~.
, ‚ jej zpracovávássh
.ssh
tuto techniku potřebuje, protože ‚ s CLI. PuTTY je aplikace s grafickým uživatelským rozhraním a existuje mnohem více uživatelsky přívětivých způsobů, jak to udělat v grafickém uživatelském rozhraní.