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
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 jopabash
jättää sen huomiotta komentorivin keskellä. Kokeile itse: kirjoita yksi kirjain ja kokeileCtrl-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 sittenhost1
-kohdastassh host8
. Siinä vaiheessalogout
tekisi saman asian kuin heidän jo tuntemansa komentoexit
– poistuminenhost8
ja laita ne takaisin osastoonhost1
. - Selvä, huono.
~.
aliakseksi tai funktioksi? Vain antaa sille helppo muistaa nimi, kutenexitall
. 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ä.ctrl+d
-ratkaisusta, mutta tämä vastaa suoraan kysymykseeni. Kiitos kaikille.~.
, se ’ hoitaa itsessh
.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ä.