Mikä on pseudo-tty: n tarkoitus?


Paras vastaus

Ohjelmien suorittaminen päätelaitteessa antaa sinulle ylimääräisiä toimintoja, joita ei ole siellä, kun suoritat ohjelmia erätöinä Jos esimerkiksi suoritat prosessin päätelaitteessa, voit keskeyttää sen painamalla Ctrl + C, mutta jos prosessia ei ole liitetty mihinkään päätelaitteeseen, et voi ”t keskeyttää sitä näppäimillä Ctrl + C, sen sijaan sinulla todennäköisesti olisi suorittaa kill tai jotain sellaista. Päätteitä selitetään tarkemmin tässä vastauksessa.

Kauko-ohjain sshd käyttää näennäispäätettä parin ottamiseksi vastaan ​​näppäimistön ja näytön roolin. Jos etäprosessi lukisi ”tosi” päätelaitteesta, kuten /dev/tty1, se saisi syötteensä suoraan näppäimistöltä. Sen sijaan sshd -prosessi siirtää näppäinpainalluksesi etäprosessiin kirjoittamalla ne pseudopäätteen pääpäähän. Käynnissä oleva ohjelma vastaanottaa sitten tietoja pseudopäätteen orjapäästä ikään kuin se olisi tullut näppäimistöltä. Samoin kun prosessi kirjoittaa pseudopäätteen orjapäähän, sillä on illuusio, että se ”kirjoittaa” todelliseen ”päätelaitteeseen, joka tulosta merkkejä näytölle. Sen sijaan sshd lukee päähän kirjoitetut tiedot, salaa ne ja lähettää ne johdon kautta takaisin sinulle.

Jos haluat nähdä, mitä tapahtuu ilman päätelaitetta , yritä suorittaa jotain esimerkiksi ssh -T remote.host. Se käynnistää kuoren etäisännässä, mutta kuori ei vaivaudu tulostamaan kehotetta, koska sillä ei ole päätelaitetta, joten se ajattelee, että se toimii eräajotilassa. Et myöskään voi suorittaa sudo etäkoneella, koska sudo vaatii salasanan kirjoittamisen päätelaitteeseen lukemisen sijaan se tavallisesta syötteestä.

Oletusarvoisesti kauko-ohjain sshd jakaa pty: n vain, kun et määritä komentoa. Jos yrität ssh remote.host screen, huomaat, että komennon määrittäminen estää pty-varauksen ja olet taas pulassa. Tämän välttämiseksi määritä -t -vaihtoehto ja sitten kauko-ohjain sshd yrittää aina kohdistaa päätelaitteen.

… ellei paikallisessa päässä ole päätelaitetta, jonka kanssa voi puhua, esimerkiksi jos ssh lukee tiedostosta. Tällöin voit pakottaa pty-allokoinnin käyttämällä ssh -t -t. Tällä voi olla joitain tahattomia vaikutuksia, koska etäpää reagoi jokaiseen tavuun, joka on kirjoitettu ssh ”vakiotuloon, ikään kuin se kirjoitettaisiin näppäimistöllä. Esimerkiksi Ctrl + C näppäimistö tuottaa ASCII-koodin 3, joten jos paikallisen ssh pitäisi lukea tavu, jonka arvo on 3, syötetiedostostaan, se välittää sen etäkoneelle, remote sshd kirjoittaa sen pty: n pääpäähän ja ydin lähettää SIGINTin prosessin lukemiseen orjapäästä. Päätteet ovat mielenkiintoisia olentoja.

Vastaa

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