Er det en måte å komme tilbake fra alle SSH-tilkoblinger og lukke PuTTY i «ett skudd»? Jeg jobber i Windows 7 og bruker PuTTY til SSH til forskjellige Linux-verter.
Et eksempel på måten jeg jobber på:
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.
Per ovenfor, noen måte å komme fra host8 til å lukke PuTTY i ett skudd? Noen ganger finner jeg meg selv opptil 5 eller 10 verter dype. Jeg skjønner at jeg kan klikke på X for å lukke PuTTY-vinduet, men jeg vil sørge for at SSH-tilkoblingene mine lukkes ordentlig ved å bruke exit-kommandoen. Jeg innser også at jeg ber om tips om hvordan du kan øke latskap. Jeg skriver bare om det som «hvordan kan jeg være mer effektiv».
Kommentarer
- Ikke direkte det du spør, men hva med å bare trykke
ctrl+d
flere ganger? - @UlrichDangel Jeg har aldri brukt det før, men også en rask måte å raskt komme seg ut av tilkoblinger på.
- Er du virkelig hekker ssh-økter 5 til 10 nivåer dype? Forstår du at ‘ skaper en kronglet tunnel som spretter alle pakker i ssh-sesjonen din gjennom alle disse vertene? Kan du få problemet til å forsvinne ved ganske enkelt ikke å hekke ssh-økter?
- @ jw013 Nei, det skjønte jeg ikke, men det er fornuftig. Ærlig talt var 5-10 nivåer en overdrivelse, men jeg prøvde å illustrere spørsmålet mitt om » hvordan jeg rent ut av Putty i ett slag. »
Svar
Prøv å bruke ssh
tilkoblingsavslutningssekvens.
I ssh
-økten, skriv ~.
(tildepunkt). Du vil ikke se tegnene når du skriver dem, men økten avsluttes umiddelbart.
$ ~. $ Connection to me.myhost.com closed.
Fra 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).
Kommentarer
Svar
Bare trykk på Ctrl D , så logger du deg der ute for å holde ctrl og trykker «d» til vinduet forsvinner.
Kommentarer
- Dessverre fungerer dette ikke ‘ t universelt. Enhver økt som kjører en redaktør eller et annet verktøy i fullskjerm, vil sannsynligvis ignorere
EOT
. Og selvbash
vil ignorere det midt på en kommandolinje. Prøv det selv: skriv en enkelt bokstav og prøvCtrl-D
. - Hva gjør Ctrl + D, jeg mener det er trygt eksisterer eller bare dreper prosessen?
- Den går trygt ut. Det er en snarvei som er det samme som å skrive ‘ avslutte ‘ og trykke enter.
- Egentlig min ( windows git bash & ubuntu bash) utgir en
logout
. - ja, jeg tror exit også kaller utlogging som ssh tilkoblinger pleier ikke å være påloggingsøkter.
Svar
Bare lukk PuTTY. ( Alt + F4 som standard IIRC.)
Svar
En annen måte er å lage function
for ssh
:
function ssh(){ /usr/bin/ssh $@ ; exit ; }
Dessverre vil det også alltid lukke forbindelsen og utloggingen fra konsollen etter at du er ferdig med arbeidet på det eksterne systemet.
Merk at du trenger å gjøre en slik funksjon på alle serverne dine, ellers vil ikke dette hacket fungere. . Fortsatt kan du alltid sette funksjon i ~ / .bashrc eller ~ /. Uansett_shell_you_use_rc.
Det ser litt skittent hack ut sammenlignet med det hele.
Kommentarer
-
function
er ikke POSIX – bare fjern nøkkelordet, og du må sitere$@
ordentlig, ellers blir argumentene dine sendt etter orddeling (dårlig).
Svar
Eller du kan bruke exec
for å erstatte skallprosess med ssh
når du hopper til en annen vert:
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 nivåer dyp er ikke pen, siden trafikken vil passere gjennom alle de andre serverne. På grunn av det anbefaler jeg ikke bare å drepe PuTTY eller ssh (~.), Siden dette (avhengig av hva du gjør) kan føre til foreldreløse prosesser på serverne.
Bedre å prøve å være mindre » lat «. Høyreklikk på tittellinjen til kitt gjør det raskt å åpne en ny økt. Hvis du har en» standard «-server og godtar et hopp fra det, er» Dupliser økt «-funksjonen veldig nyttig. Spesielt når du bruker pubkey-autentisering.
Svar
Hvis du ikke har noe imot å gjøre litt skript, kan du gjøre dette.
Skript: myssh .sh
#!/bin/bash ssh $1 if [ $? -eq 5 ]; then exit 5 fi
Ring via punktkommandoen:
$ . myssh [email protected]
Hvis du vil gå ut av ett nivå:
$ exit
Hvis du vil avslutte alle:
$ exit 5
Kommentarer
- Selvfølgelig ville du ha kopiert den til hver datamaskin du noen gang kan ssh fra. Vil ikke ‘ ikke være lettere å bare definere en skallfunksjon kalt ssh? Det ville unngå forrige periode osv.
Svar
Å skrive utlogging i kittterminalvinduet gjør det for meg:
richard@forevermore:~ > logout
Lukker ssh-tilkoblingen og avslutter Putty-applikasjonen.
Kommentarer
- Jeg tror at du ikke ‘ ikke leste spørsmålet riktig. OP gjør
ssh host1
, og deretter, frahost1
, gjørssh host8
. På det tidspunktet ville enlogout
gjøre det samme somexit
-kommandoen de allerede vet – gå ut avhost8
og legg dem tilbake ihost1
. - Ok, jeg skjønner, det er dårlig.
~.
til et alias eller en funksjon? Bare for å gi det et lett å huske navn somexitall
. Nå spør jeg ‘ for altfor mye :). Jeg prøvde noen få ting i~/.bashrc
men får-bash: ~.: command not found
. Jeg antar at bash ser det som en streng og ikke en escape-sekvens som kommer direkte fra tastaturet.ctrl+d
-løsningen også, men dette svarer på spørsmålet mitt mer direkte. Takk alle sammen.~.
, det ‘ håndteres avssh
selv .ssh
-klienten trenger denne teknikken fordi den ‘ s CLI. PuTTY er et GUI-program, og det er langt mer brukervennlige måter å gjøre dette på et GUI.