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

  • Ganske kult! Enhver måte å si ~. til et alias eller en funksjon? Bare for å gi det et lett å huske navn som exitall. 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.
  • Jeg liker ctrl+d -løsningen også, men dette svarer på spørsmålet mitt mer direkte. Takk alle sammen.
  • @Banjer bash ser aldri ~., det ‘ håndteres av ssh selv .
  • @Gilles gotcha, er fornuftig.
  • Og det er ‘ ingen garanti ee at PuTTY også gjør dette. CLI 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.

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 selv bash vil ignorere det midt på en kommandolinje. Prøv det selv: skriv en enkelt bokstav og prøv Ctrl-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, fra host1, gjør ssh host8. På det tidspunktet ville en logout gjøre det samme som exit -kommandoen de allerede vet – gå ut av host8 og legg dem tilbake i host1.
  • Ok, jeg skjønner, det er dårlig.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *