Onko olemassa tapa peruuttaa kaikki SSH-yhteydet ja sulkea PuTTY yhdessä laukauksessa? Työskentelen Windows 7: ssä ja käytän PuTTY: tä SSH: n käyttämiseen useille Linux-isännöille.

Esimerkki työskentelystäni:

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. 

Yllä, onko jokin tapa päästä isännästä8 sulkemaan PuTTY yhdellä laukauksella? Joskus löydän itseni jopa 5 tai 10 isäntään. Ymmärrän, että voin napsauttaa X sulkeaksesi PuTTY-ikkunan, mutta haluan varmistaa, että SSH-yhteyteni sulkeutuvat kunnolla käyttämällä exit-komentoa. Ymmärrän myös, että kysyn vinkkejä laiskuuden lisäämiseksi. Kirjoitan sen vain ”kuinka voin olla tehokkaampi”.

Kommentit

  • Ei suoraan mitä kysyt, mutta entä jos painat vain ctrl+d useita kertoja?
  • @UlrichDangel En ole koskaan käyttänyt sitä aiemmin, mutta myös nopea tapa peruuttaa yhteydet nopeasti.
  • Pesitkö todella ssh-istuntoja 5–10 tasoa syvällä? Ymmärrätkö, että ’ luo sekavan tunnelin, joka palauttaa kaikki ssh-istuntosi paketit kaikkien näiden isäntien läpi? Voisitko saada ongelman poistumaan yksinkertaisesti olematta pesimättä ssh-istuntoja?
  • @ jw013 Ei, en tajunnut sitä, mutta on järkevää. Rehellisesti sanottuna 5-10 tasoa oli liioiteltua, mutta yritin havainnollistaa kysymystäni ” siitä, kuinka poistua puhtaasta kitistä yhdellä iskulla. ”

vastaus

Yritä käyttää ssh yhteyden lopetussarja.

Kirjoita ssh -istuntoon ~. (tilde-piste). Et näe merkkejä kirjoittaessasi niitä, mutta istunto päättyy välittömästi.

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

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

Kommentit

  • Melko siistiä! Mikä tahansa tapa laittaa ~. aliakseksi tai funktioksi? Vain antaa sille helppo muistaa nimi, kuten exitall. Nyt ’ kysyn liian paljon :). Yritin muutamia asioita kohdassa ~/.bashrc, mutta hanki -bash: ~.: command not found. Oletan, että bash näkee sen merkkijonona eikä pakenemisjakso, joka tulee suoraan näppäimistöltä.
  • Pidän myös ctrl+d -ratkaisusta, mutta tämä vastaa suoraan kysymykseeni. Kiitos kaikille.
  • @Banjer bash ei koskaan näe ~., se ’ hoitaa itse ssh .
  • @Gilles gotcha, on järkevää.
  • Eikä ’ ole takuuta ee että PuTTY tekee myös tämän. CLI ssh -asiakas tarvitsee tätä tekniikkaa, koska se ’ on CLI. PuTTY on GUI-sovellus, ja on paljon käyttäjäystävällisempiä tapoja tehdä nämä asiat graafisella käyttöliittymällä.

Vastaa

Paina vain Ctrl D ja se kirjaa sinut ulos pitämään ctrl-näppäintä painettuna ja paina ”d”, kunnes ikkuna katoaa.

Kommentit

  • Valitettavasti tämä ei toimi ’. Jokainen istunto, joka käyttää editoria tai muuta koko näytön työkalua, todennäköisesti ohittaa EOT. Ja jopa bash jättää sen huomiotta komentorivin keskellä. Kokeile itse: kirjoita yksi kirjain ja kokeile Ctrl-D.
  • Mitä Ctrl + D tekee, tarkoitan onko se turvallisesti olemassa tai vain tappaa prosessin?
  • Se poistuu turvallisesti. Se on komentotulkin pikakuvake, joka on sama kuin kirjoittamalla ’ exit ’ ja painamalla Enter.
  • Oikeastaan minun ( Windows git bash & ubuntu bash) antaa logout.
  • kyllä, mielestäni exit kutsuu myös uloskirjautumista ssh: ksi yhteydet eivät yleensä ole kirjautumisistuntoja.

Vastaa

Sulje PuTTY. ( Alt + F4 oletusarvoisesti IIRC.)

Vastaa

Toinen tapa on tehdä function kohteelle ssh:

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

Valitettavasti se myös sulkee aina yhteyden ja uloskirjautumisen konsolista, kun olet valmis työskentelemään etäjärjestelmässä.

Huomaa, että sinun on tehtävä tällainen toiminto kaikilla palvelimillasi, muuten tämä hakkerointi ei toimi . Btw, johon voit aina laittaa toiminnon ~ / .bashrc- tai ~ / .whatever_shell_you_use_rc-tiedostoihin.

Se näyttää hieman likainen hakkerointi verrattuna utherin tapaan.

Kommentit

  • function ei ole POSIX – poista vain avainsana ja sinun on lainattava $@ oikein, tai argumenttisi välitetään sanan jakamisen jälkeen (huono).

Vastaa

Tai voit käyttää exec korvaamaan shell-prosessi, jossa ssh, kun siirryt toiseen isäntään:

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 tasoa syvä ei ole kaunis, koska liikenne kulkee kaikkien muiden palvelimien läpi. Siksi en suosittele vain PuTTY: n tai ssh: n (~.) Tappamista, koska (riippuen siitä, mitä teet) tämä voi johtaa orpojen prosesseihin palvelimilla.

Parempi yrittää olla vähemmän ” laiska ”. Napsauttamalla hiiren kakkospainikkeella puttys-otsikkoriviä uuden istunnon avaaminen on nopeaa. Jos sinulla on” oletus ”palvelin ja hyväksyt yhden hypyn siitä,” Kopioi istunto ”-ominaisuus on erittäin hyödyllinen. Varsinkin kun käytetään avaimen tunnistusta. p>

Vastaa

Jos et halua tehdä vähän komentosarjoja, voit tehdä tämän.

Skripti: myssh .sh

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

Soita pistekomennolla:

$ . myssh [email protected] 

Jos haluat poistu yhdeltä tasolta:

$ exit 

Jos haluat poistua kaikista:

$ exit 5 

kommentit

  • Olisit tietysti kopioinut sen jokaiselle tietokoneelle, josta saatat koskaan ssh. Eikö olisikaan ’ t helpompaa määritellä vain shell-funktio nimeltä ssh? Tällöin vältettäisiin edeltävä jakso jne.

Vastaus

Kirjautumalla ulos kenttäterminaalin ikkunaan se tehdään minä:

richard@forevermore:~ > logout 

Sulkee ssh-yhteyden ja sulkee Putty-sovelluksen.

Kommentit

  • Uskon, ettet ’ lukenut kysymystä oikein. OP tekee ssh host1 ja tekee sitten host1 -kohdasta ssh host8. Siinä vaiheessa logout tekisi saman asian kuin heidän jo tuntemansa komento exit – poistuminen host8 ja laita ne takaisin osastoon host1.
  • Selvä, huono.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *