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
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 chiarbash
îl va ignora în mijlocul unei linii de comandă. Încercați-l singur: tastați o singură literă și încercațiCtrl-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, dinhost1
, facessh host8
. În acel moment, ologout
ar face același lucru cu comandaexit
pe care o știu deja – ieșiți dinhost8
și pune-le din nou înhost1
. - Ok, văd, răul meu.
~.
într-un alias sau funcție? Doar pentru a-i da un nume ușor de reținut, cum ar fiexitall
. 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ă.ctrl+d
, dar aceasta răspunde la întrebarea mea mai direct. Mulțumesc tuturor.~.
, este ‘ gestionat dessh
.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ă.