Korjattu: sudo: ei tty-läsnä eikä askpass-ohjelmaa määritetty

Ei tty-läsnä- ja askpass-ohjelmassa määritettyä lähtölinjaa on yksi niistä ssh-virheilmoituksista, jotka eivät todellakaan ole niin hyödyllisiä, koska se ei oikeastaan ​​pääse siihen, mikä aiheuttaa ongelman. Enemmän kuin todennäköistä, työskentelet tosiasiallisesti jonkinlaisen kelvollisen TTY: n kanssa, kun näet viestin ja olet todennäköisesti käsitellyt sudo-salasanasi ssh: n kautta hienosti. Olet enemmän kuin todennäköisesti käsittelemässä syntaksivirhettä, mutta viesti ei käsittele suoraan tätä tosiasiaa.

Koska tämä liittyy itse ssh: hen liittyvään ongelmaan, pystyt todennäköisesti toistamaan ongelman Linuxissa, FreeBSD: ssä, macOS: ssa ja Cygwinin Unix-palveluissa Microsoft Windowsissa. Onneksi korjauksen pitäisi olla melkein sama kaikilla näillä alustoilla.

Tapa 1: Päätteen löytäminen ssh: lle

Vaikka työskentelet todennäköisesti jo terminaalista, ssh ei todennäköisesti ymmärrä tätä. Se saattaa silti yrittää etsiä TTY-pääteemulaattoria huolimatta siitä, että olet komentokehoteikkunan sisällä. Kokeile toistaa virhe toistamalla tämä. Konfiguroimme virtuaalikoneen toimimaan esimerkkinä ja juoksimme ssh [email protected] ‘sudo /var/mail/startup.sh’ testinä. Luonnollisesti sinun kannattaa muuttaa komento ja ssh-rivi jotain, joka vastaa sitä, mitä yrität tehdä.

Varmista, että kirjaudut palvelimeen, jonka luulit olevasi. Tarkista siitä huolimatta, saatko vielä sudo: ei tty-läsnä eikä askpass-ohjelmassa määritettyä virhesanomaa. Enemmän kuin todennäköistä, jos saat edelleen sitä, näet sen kolme kertaa ja mahdollisesti jopa pyydetään antamaan salasanasi samalla tavalla kuin sinulla olisi, jos suoritat sudoa paikallisesti Debianissa tai Ubuntussa.

Yritä lisätä syntaksivirhe lisäämällä -t ssh: n jälkeen. Yhdeksän kertaa kymmenestä tämä pakottaa ssh: n varaamaan virtuaalisen TTY: n itselleen ja teeskentelemään, että se sattuu käymään todellisen päätelaitteen sisällä. Sinun ei tarvitse muuttaa mitään muuta komentoasi. Lisää yksinkertaisesti -t-vaihtoehto kirjainten ssh jälkeen ja pidä sitten isäntä ja välitetty komento sama. Tämä kannattaa pitää mielessä myös, jos joudut joskus suorittamaan ssh: n komennon loppuosassa.

Esimerkiksi, jos sait samanlaisen virheen suoritettaessa komentoa, joka oli muotoiltu muodossa ssh -t käyttäjä@linuxtest.example ’ssh käyttäjä@linuxtest2.example’ sinun on pidettävä -t-vaihtoehto ensimmäisen ssh: n jälkeen sen estämiseksi. Huomaa, että jos muutit toisen komennon myöhemmin joko tuottamaan tai kuluttamaan dataa, et halua käyttää -t: tä lainkaan. Esimerkiksi, jos aloitit kissan suorittamisen komentosarjan sijasta, voit jättää -t: n, koska sinun ei tarvitse varata terminaalia sille.

Tapa 2: Visudotiedoston korjaaminen

Sinulla voi olla myös kokoonpano-ongelma, joka aiheuttaa tämän virheen. Muokkaa visudotiedostoa antamalla sudo visudo -komento ja pidä mielessä, että et koskaan halua muokata tätä tiedostoa millään muulla tavalla. Sinun pitäisi löytää rivi, jossa on ALL = NOPASSWD, ja sen jälkeen komentotyypit, joita sinun ei tarvitse antaa järjestelmänvalvojan salasanaa.

Jokaisen yksittäisen komennon on lopetettava pilkulla, paitsi rivin viimeinen. Joten jos sinulla on jotain, joka lukee esimerkiksi / sbin / poweroff / sbin / start / sbin / stop, se käsittelee näitä kaikkia yhtenä komentona ja heittää virheen sinulle. Samoin, jos puuttuu komento, jota yrität suorittaa ssh: n kautta, saat myös tämän virheen. Tee tarvittavat muutokset ja tallenna tiedosto, ennen kuin tarkistat, onko virhe edelleen toistettavissa.

Jos sinulla on edelleen virhe edes sen jälkeen, kun olet tehnyt niin ja käynnistänyt palvelu uudelleen, kokeile sittenseuraava komento alla olevassa kuvassa ja varmista, että PermitTTY-rivillä on sana kyllä. Jos tämä on tiedostosi viimeinen rivi, varmista, että sen jälkeen on tyhjä uusi rivi. GNU nano suorittaa tämän tehtävän oletuksena automaattisesti.

Sinun on käynnistettävä kaikki asiaankuuluvat palvelut uudelleen, ennen kuin yrität toistaa virheilmoituksen uudelleen.