Există o modalitate de a ieși din toate conexiunile SSH și de a închide MÂNĂ în „o singură lovitură”? Lucrez în Windows 7 și folosesc PuTTY pentru SSH pe diferite gazde Linux.

Un exemplu al modului în care mă găsesc lucrând:

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. 

În conformitate cu cele de mai sus, vrei să ajungi de la host8 la închiderea PuTTY dintr-o singură lovitură? Uneori mă găsesc până la 5 sau 10 gazde adâncime. Îmi dau seama că pot face clic pe X pentru a închide fereastra PuTTY, dar îmi place să mă asigur că conexiunile mele SSH se închid corect folosind comanda exit. De asemenea, îmi dau seama că „îți cer sfaturi despre cum să măresc lenea. Voi scrie doar„ cum pot fi mai eficient ”.

Comentarii

  • Nu direct ceea ce întrebați, dar ce zici de apăsarea ctrl+d de mai multe ori?
  • @UlrichDangel Nu am mai folosit asta până acum, ci și un modalitate rapidă de a ieși rapid din conexiuni.
  • Chiar îți cuibărești sesiuni ssh de 5 până la 10 niveluri? Vă dați seama că ‘ creează un tunel complicat care sări toate pachetele din sesiunea dvs. ssh prin toate acele gazde? Ați putea face problema să dispară pur și simplu nu cuibărind sesiunile ssh?
  • @ jw013 Nu, nu mi-am dat seama de asta, dar are sens. Sincer, 5-10 niveluri a fost o exagerare, dar încercam să ilustrez întrebarea mea despre ” cum să ieșesc curat din Putty dintr-o singură lovitură. ”

Răspuns

Încercați să utilizați ssh secvență de evacuare a încheierii conexiunii.

În sesiunea ssh, introduceți ~. (tilde dot). Nu veți vedea caracterele când le tastați, dar sesiunea se va încheia imediat.

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

From 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). 

Comentarii

  • Destul de cool! Orice mod de a pune ~. într-un alias sau funcție? Doar pentru a-i da un nume ușor de reținut, cum ar fi exitall. Acum îmi cer ‘ pentru mult prea mult :). Am încercat câteva lucruri în ~/.bashrc dar obțin -bash: ~.: command not found. Presupun că bash îl vede ca un șir și nu o secvență de evadare care vine direct de la tastatură.
  • Îmi place și soluția ctrl+d, dar aceasta răspunde la întrebarea mea mai direct. Mulțumesc tuturor.
  • @Banjer bash nu vede niciodată ~., este ‘ gestionat de ssh .
  • @Gilles gotcha, are sens.
  • Și ‘ nu are garanție ee că, de asemenea, PuTTY face asta. CLI ssh are nevoie de această tehnică deoarece este ‘ s CLI. PuTTY este o aplicație GUI și există modalități mult mai ușor de utilizat de a face aceste lucruri pe o interfață grafică.

Răspuns

Doar apăsați Ctrl D și vă va deconecta acolo pentru a ține apăsat ctrl și apăsați „d” până când dispare fereastra.

Comentarii

  • Din păcate, acest lucru nu ‘ nu funcționează universal. Orice sesiune care rulează un editor sau alt instrument cu ecran complet va ignora EOT. Și chiar bash îl va ignora în mijlocul unei linii de comandă. Încercați-l singur: tastați o singură literă și încercați Ctrl-D.
  • Ce face Ctrl + D, adică dacă există în siguranță sau doar ucide procesul?
  • Iese în siguranță. Este o comandă rapidă de tip shell care este la fel ca tastarea ‘ exit ‘ și apăsarea enter.
  • De fapt, al meu ( windows git bash & ubuntu bash) emite o logout.
  • da, cred că ieșirea apelează și deconectarea ca ssh conexiunile tind să nu fie sesiuni de autentificare.

Răspuns

Pur și simplu închideți PuTTY. ( Alt + F4 în mod implicit IIRC.)

Răspuns

O altă modalitate este de a crea function pentru ssh:

 function ssh(){ /usr/bin/ssh $@ ; exit ; } 

Din păcate, de asemenea, va închide întotdeauna conexiunea și deconectarea de pe consolă după ce veți termina lucrul pe sistemul de la distanță.

Rețineți că trebuie să faceți o astfel de funcție pe toate serverele dvs. . Btw puteți pune oricând funcția în ~ / .bashrc sau ~ / .whatever_shell_you_use_rc.

Pare un pic cam murdar în comparație cu modul în care se află.

Comentarii

  • function nu este POSIX – trebuie doar să eliminați cuvântul cheie și trebuie să citați $@ corect, sau argumentele dvs. vor fi transmise după împărțirea cuvintelor (rău).

Răspuns

Sau puteți utiliza exec pentru a înlocui proces shell cu ssh atunci când săriți la o altă gazdă:

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 adâncime nu este destul, deoarece traficul va trece prin toate celelalte servere. Din această cauză, nu recomand doar să omoriți PuTTY sau ssh (~.), Deoarece (în funcție de ceea ce faceți) acest lucru ar putea duce la procese orfane pe servere.

Mai bine să încercați să fiți mai puțin leneș „. Faceți clic dreapta pe bara de titlu puttys pentru a deschide rapid o nouă sesiune. Dacă aveți un server” implicit „și acceptați 1 salt de la aceasta, caracteristica” Duplicare sesiune „este foarte utilă. Mai ales atunci când utilizați autentificarea pubkey.

Răspuns

Dacă nu vă deranjează să faceți puține scripturi, puteți face acest lucru.

Script: myssh .sh

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

Apelați prin comanda punct:

$ . myssh [email protected] 

Dacă doriți să ieși dintr-un nivel:

$ exit 

Dacă vrei să ieși din toate:

$ exit 5 

Comentarii

  • Bineînțeles, l-ați fi copiat pe fiecare computer din care ați putea ssh vreodată. De asemenea, nu ar fi ‘ mai ușor să definiți doar o funcție shell numită ssh? Asta ar evita perioada anterioară, etc.

Răspuns

Tastarea deconectării în fereastra terminalului de chit o face pentru eu:

richard@forevermore:~ > logout 

Închide conexiunea ssh și părăsește aplicația Putty.

Comentarii

  • Cred că nu ‘ nu ați citit corect întrebarea. OP face ssh host1 și apoi, din host1, face ssh host8. În acel moment, o logout ar face același lucru cu comanda exit pe care o știu deja – ieșiți din host8 și pune-le din nou în host1.
  • Ok, văd, răul meu.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *