Van-e mód arra, hogy visszalépjen az összes SSH-kapcsolattól és bezárja >
PuTTY “egy lövéssel”? Windows 7 rendszerben dolgozom, és a PuTTY-t használom SSH-ként különböző Linux-állomásokhoz.
Példa arra, hogy hogyan találom magam dolgomra:
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.
Fentebb, bármilyen módon eljuthatunk a host8-tól a PuTTY bezárásához egy lövéssel? Néha 5 vagy 10 házigazdának találom magam. Rájöttem, hogy az X gombra kattintva bezárhatom a PuTTY ablakot, de az exit paranccsal szeretnék megbizonyosodni arról, hogy az SSH-kapcsolataim megfelelően záródnak-e. Arra is rájövök, hogy tippeket kérek a lustaság növelésére. Csak leírom, hogy “hogyan lehetek hatékonyabb”.
Hozzászólások
- Nem közvetlenül az, amit kérdezel, de mit szólna ahhoz, ha egyszerűen megnyomod a
ctrl+d
gombot többször? - @UlrichDangel ezt még soha nem használtam, hanem egy gyors módja a kapcsolatok gyors visszalépésének.
- Tényleg 5-10 szint mélyen fészkeli az ssh munkameneteket? Rájössz, hogy ‘ egy tekercselt alagutat hoz létre, amely az ssh munkameneted során az összes csomagot visszacsapja az összes gazdagépen? El tudná oldani a problémát azzal, hogy egyszerűen nem fészkel be ssh munkameneteket?
- @ jw013 Nem, erre nem jöttem rá, de van értelme. Őszintén szólva az 5-10 szint túlzás volt, de megpróbáltam szemléltetni azt a kérdésemet, hogy ” hogyan lehet egy csapásra tiszta módon kilépni a Gittből. ”
Válasz
Próbálja ki a ssh
kapcsolat befejezésének menekülési sorrendje.
A ssh
munkamenetbe írja be a ~.
(tilde pont) kifejezést. Nem fogja látni a karaktereket, amikor beírja őket, de a munkamenet azonnal leáll.
$ ~. $ Connection to me.myhost.com closed.
Feladó: 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).
Hozzászólások
Válasz
Csak nyomja meg a Ctrl D gombot, és kijelenti, hogy tartsa lenyomva a ctrl billentyűt, és nyomja meg a “d” gombot, amíg az ablak eltűnik.
Megjegyzések
- Sajnos ez nem működik ‘ univerzálisan. Minden szerkesztőt vagy más teljes képernyős eszközt futtató munkamenet valószínűleg figyelmen kívül hagyja a következőt:
EOT
. És mégbash
is figyelmen kívül hagyja a parancssor közepén. Próbáld ki te is: írj be egy betűt, és próbáld ki aCtrl-D
kifejezést. - Mit csinál a Ctrl + D, mármint hogy biztonságosan létezik, vagy csak megöli a folyamatot?
- Biztonságosan kilép. Ez egy parancsikon, amely megegyezik a ‘ exit ‘ beírásával és az enter megnyomásával.
- Valójában az enyém ( Windows git bash & ubuntu bash) kiad egy
logout
. - igen, úgy gondolom, hogy az exit a kijelentkezést is ssh-ként hívja meg a kapcsolatok általában nem bejelentkezési munkamenetek.
Válasz
Egyszerűen zárja be a PuTTY-t. ( Alt + F4 alapértelmezés szerint IIRC.)
Válasz
Egy másik módszer az function
elkészítése a ssh
számára:
function ssh(){ /usr/bin/ssh $@ ; exit ; }
Sajnos ez is mindig bezárja a kapcsolatot és a kijelentkezést a konzolról, miután befejezi a munkát a távoli rendszeren.
Ne feledje, hogy az összes szerverén meg kell adnia ezt a funkciót, különben ez a hack nem fog működni . Btw, a ~ / .bashrc vagy a ~ / .whatever_shell_you_use_rc fájlba mindig beírhatod a függvényt.
Kicsit piszkos hacknek tűnik, összehasonlítva a uther módjával.
Megjegyzések
-
function
nem POSIX – csak távolítsa el a kulcsszót, és meg kell idéznie$@
megfelelő módon, különben az érvelésed átkerül a szó felosztása után (rossz).
Válasz
Vagy használhatja az exec
parancsot a shell folyamat ssh
-vel, amikor másik állomásra ugrik:
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.
Az 5 szint mélysége nem szép, mivel a forgalom át fog menni az összes többi szerveren. Emiatt nem ajánlom a PuTTY vagy az ssh (~.) Megölését, mivel (attól függően, hogy mit csinálsz) ez árva folyamatokat eredményezhet a szervereken.
Jobb kipróbálni és kevesebb lenni ” lusta “. A jobb gombbal kattintva a gombok címsorára gyors az új munkamenet megnyitása. Ha van” alapértelmezett “szervere és elfogadja az 1 ugrást, akkor a” Munkamenet duplikálása “funkció nagyon hasznos. Különösen a pubkey hitelesítés használatakor.
Válasz
Ha nem törekszik egy kis szkript készítésére, akkor ezt megteheti.
Script: myssh .sh
#!/bin/bash ssh $1 if [ $? -eq 5 ]; then exit 5 fi
Hívás a dot paranccsal:
$ . myssh [email protected]
Ha szeretné kilépés egy szintről:
$ exit
Ha ki akar lépni az összesből:
$ exit 5
megjegyzések
- Természetesen minden számítógépre át kell másolnia, amelyről valaha is tudsz ssh-t küldeni. Ezenkívül nem lenne ‘ egyszerűbb megadni az ssh nevű shell függvényt? Ezzel elkerülhető lenne az előző időszak stb.
Válasz
A kijelentkezés beírása a putty terminál ablakába én:
richard@forevermore:~ > logout
Bezárja az ssh kapcsolatot és kilép a Putty alkalmazásból.
Megjegyzések
- Úgy gondolom, hogy nem ‘ nem olvastad el helyesen a kérdést. Az OP
ssh host1
műveletet hajt végre, majd ahost1
oldalrólssh host8
. Ekkor egylogout
ugyanazt tenné, mint a már ismertexit
parancs – kilép a és tegye vissza őket ahost1
helyre. - Oké, látom, rossz.
~.
álnévbe vagy függvénybe? Csak azért, hogy könnyen megjegyezhető név legyen, példáulexitall
. Most ‘ kérdezem mert túl sok :). Kipróbáltam néhány dolgot a~/.bashrc
fájlban, de megkapom a-bash: ~.: command not found
fájlt. Feltételezem, hogy a bash karakterláncként látja, egy menekülési szekvencia, amely közvetlenül a billentyűzetről érkezik.ctrl+d
megoldás is, de ez közvetlenebb választ ad a kérdésemre. Köszönöm mindenkinek.~.
-t, azt ‘ s magassh
kezeli .ssh
ügyfélnek szüksége van erre a technikára, mert ‘ s CLI. A PuTTY egy GUI alkalmazás, és sokkal felhasználóbarátabb módszerek vannak ezekre a dolgokra egy GUI-n.