Ištaisyta: sudo: nėra „tty“ ir nenurodyta „askpass“ programa

Nėra „tty“ ir jokios „askpass“ programos nurodytos išvesties linijos yra vienas iš tų ssh klaidos pranešimų, kurie iš tikrųjų nėra tokie naudingi, nes iš tikrųjų nepasiekia to, kas sukelia problemą. Labiau tikėtina, kad iš tikrųjų dirbate su galiojančiu tam tikru TTY, kai pamatysite pranešimą ir tikriausiai susidūrėte su savo „sudo“ slaptažodžio įvedimu per ssh. Labiau tikėtina, kad susiduriate su sintaksės klaida, tačiau pranešime šis faktas nėra tiesiogiai nagrinėjamas.

Kadangi tai yra problema, susijusi su pačiu ssh, daugiau nei tikėtina, kad galėsite atkurti problemą sistemoje „Linux“, „FreeBSD“, „macOS“ ir „Cygwin“ „Unix“ paslaugose „Microsoft Windows“. Laimei, taisymas turėtų būti beveik vienodas visose šiose platformose.

1 metodas: rasti ssh terminalą

Nors greičiausiai jau dirbate iš terminalo, „ssh“ tikriausiai to nesupranta. Nepaisant to, kad esate komandų eilutės lange, jis vis tiek bando ieškoti TTY terminalo emuliatoriaus. Norėdami tai išbandyti, pabandykite atkurti klaidą. Mes sukonfigūravome virtualią mašiną, kad ji būtų pavyzdys, ir paleidome ssh [email protected] „sudo /var/mail/startup.sh“ kaip testas. Natūralu, kad norėsite pakeisti komandą ir ssh eilutę į tai, kas atitinka tai, ką bandote padaryti.

Įsitikinkite, kad prisijungiate prie serverio, kurį manėte esąs. Nepaisant to, patikrinkite, ar vis dar gaunate „sudo“: nėra „tty“ ir nėra „askpass“ programos nurodyto klaidos pranešimo. Labiau tikėtina, kad jei vis tiek jį gausite, pamatysite jį tris kartus ir galbūt net būsite paraginti įvesti slaptažodį taip, kaip turėtumėte, jei „sudo“ paleistumėte vietoje „Debian“ ar „Ubuntu“.

Pabandykite pridėti -t po ssh, kad ištaisytumėte sintaksės klaidą. Devynis kartus iš dešimties tai privers ssh paskirstyti sau virtualų TTY ir apsimesti, kad tai vyksta tikro terminalo viduje. Nereikia nieko keisti dėl savo komandos. Paprasčiausiai pridėkite -t ​​parinktį po raidžių ssh, tada palikite pagrindinio kompiuterio ir perduotos komandos tą patį. Taip pat turėsite tai nepamiršti, jei kada nors teks paleisti ssh paskutinėje komandos dalyje.

Pvz., Jei vykdydami komandą, kuri buvo suformatuota taip, buvo tokia pati klaida ssh -t [email protected] ‘ssh [email protected] po pirmojo ssh turėtumėte laikyti -t parinktį, kad to išvengtumėte. Atminkite, kad jei vėliau pakeisite antrąją komandą, kad sukurtumėte arba suvartotumėte duomenis, tuomet visai nenorėtumėte naudoti -t. Pavyzdžiui, jei pradėjote paleisti katę, o ne scenarijų, galite išmesti -t, nes jums nereikės tam skirti terminalo.

2 metodas: Visudo failo pataisymas

Taip pat gali kilti konfigūracijos problema, dėl kurios atsiranda ši klaida. Pakeiskite visudo failą išleisdami sudo visudo komandą ir nepamirškite, kad niekada nenorėsite redaguoti šio failo jokiu kitu būdu. Turėtumėte rasti eilutę, kurioje yra ALL = NOPASSWD, po kurios nurodomi komandų tipai, kuriems paleisti nereikia įvesti administratoriaus slaptažodžio.

Kiekviena atskira komanda turi baigtis kableliu, išskyrus paskutinę eilutėje. Taigi, jei turėjote ką nors tokio, kas perskaityta kaip / sbin / poweroff / sbin / start / sbin / stop, visa tai bus traktuojama kaip viena komanda ir jums bus padaryta klaida. Panašiai, jei trūksta komandos, kurią bandote paleisti per ssh, taip pat gausite šią klaidą. Prieš patikrindami, ar klaida vis dar atkuriama, atlikite reikiamus pakeitimus ir išsaugokite failą.

Jei vis tiek turite klaidos net tai padarę ir iš naujo paleidę paslaugą, pabandykitevadovaudamiesi komanda paveikslėlyje žemiau ir įsitikinkite, kad eilutėje PermitTTY yra žodis taip. Jei tai paskutinė failo eilutė, įsitikinkite, kad po to yra tuščia nauja eilutė. Pagal numatytuosius nustatymus GNU nano šią užduotį atlieka automatiškai.

Prieš bandydami vėl atkurti klaidos pranešimą, turėsite iš naujo paleisti visas susijusias paslaugas.


$config[zx-auto] not found$config[zx-overlay] not found