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

  • Nagyon klassz! Bármilyen módon fel lehet tenni a következőt: ~. álnévbe vagy függvénybe? Csak azért, hogy könnyen megjegyezhető név legyen, például exitall. 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.
  • Tetszik a ctrl+d megoldás is, de ez közvetlenebb választ ad a kérdésemre. Köszönöm mindenkinek.
  • @Banjer bash soha nem látja ~. -t, azt ‘ s maga ssh kezeli .
  • @ Gilles gotcha, van értelme.
  • És ‘ nincs garancia ee, hogy a PuTTY is ezt csinálja. A CLI 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.

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ég bash 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 a Ctrl-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 a host1 oldalról ssh host8. Ekkor egy logout ugyanazt tenné, mint a már ismert exit parancs – kilép a és tegye vissza őket a host1 helyre.
  • Oké, látom, rossz.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük