Fiksēts: sudo: nav tty un nav norādīta askpass programma



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

Bez tty klāt un nav askpass programmas norādītās izejas līnijas ir viens no tiem ssh kļūdu ziņojumiem, kas patiesībā nav tik noderīgs, jo tas īsti nenonāk līdz problēmai. Vairāk nekā iespējams, jūs faktiski strādājat ar derīgu sava veida TTY, kad redzat ziņojumu, un jūs, iespējams, esat nodarbojies ar sudo paroles ievadīšanu, izmantojot ssh. Jūs, visticamāk, nodarbojaties ar sintakses kļūdu, taču ziņojumā šis fakts tieši netiek risināts.



Tā kā šī ir problēma, kas saistīta ar pašu ssh, jūs, visticamāk, varēsiet problēmu atkārtot Linux, FreeBSD, macOS un Cygwin's Unix pakalpojumos Microsoft Windows. Par laimi, labojumam vajadzētu būt gandrīz vienādam visās šajās platformās.



1. metode: Termināla atrašana ssh

Lai gan jūs, visticamāk, jau strādājat no termināļa, ssh, iespējams, to neapzinās. Iespējams, tas joprojām mēģina meklēt TTY termināļa emulatoru, neskatoties uz to, ka atrodaties komandrindas logā. Lai to pārbaudītu, mēģiniet atkārtot kļūdu. Mēs konfigurējām virtuālo mašīnu, lai tā kalpotu par piemēru, un palaidām ssh user@linuxtest.example ‘sudo /var/mail/startup.sh’ kā pārbaudījums. Protams, jūs vēlaties mainīt komandu un ssh līniju uz kaut ko tādu, kas atbilst jūsu mēģinājumiem.



Pārliecinieties, vai piesakāties serverī, par kuru domājāt. Neatkarīgi no tā, pārbaudiet, vai joprojām saņemat sudo: nav tty klāt un nav neviena askpass programmas kļūdas ziņojuma. Vairāk nekā iespējams, ja jūs to joprojām saņemat, jūs to redzēsit trīs reizes un, iespējams, pat tiksit aicināts ievadīt paroli tā, kā jūs to darītu, ja palaistos sudo lokāli Debian vai Ubuntu.

Mēģiniet pievienot t pēc ssh, lai labotu sintakses kļūdu. Deviņas reizes no desmit tas piespiedīs ssh piešķirt sev virtuālo TTY un izlikties, ka tas notiek reālā termināla iekšpusē. Komandā nekas cits nav jāmaina. Vienkārši pievienojiet opciju -t pēc burtiem ssh un pēc tam saglabājiet to pašu saimniekdatora un nodotās komandas. To arī vēlaties paturēt prātā, ja komandas pēdējā daļā jums kādreiz būs jāpalaiž ssh.



Piemēram, ja, izpildot komandu, kas formatēta kā, tika parādīta šāda veida kļūda ssh -t user@linuxtest.example ‘ssh user@linuxtest2.example’ jums vajadzētu saglabāt opciju -t pēc pirmā ssh, lai to novērstu. Ņemiet vērā, ka, ja vēlāk mainījāt otro komandu uz datu ražošanu vai patērēšanu, tad vispār nevēlaties izmantot -t. Piemēram, ja jūs sākāt palaist kaķi skripta vietā, tad jūs varētu izmest -t, jo jums tam nevajadzētu piešķirt termināli.

2. metode: Visudo faila ielāpīšana

Jums var būt arī konfigurācijas problēma, kas rada šo kļūdu. Mainiet visudo failu, izsniedzot sudo visudo komandu un paturiet prātā, ka jūs nekad nevēlaties rediģēt šo failu citādi. Jums jāatrod rinda, kurā ir ALL = NOPASSWD, kam seko komandu veidi, kuru izpildei nav jāievada administratora parole.

Katrai komandai ir jābeidzas ar komatu, izņemot pēdējo rindā. Tādējādi, ja jums bija kaut kas tāds, kas lasīja, piemēram, / sbin / poweroff / sbin / start / sbin / stop, tas izturēsies pret visiem kā vienu komandu un iemetīs jums kļūdu. Tāpat, ja trūkst komandas, kuru mēģināt izpildīt, izmantojot ssh, saņemsit arī šo kļūdu. Veiciet nepieciešamos pielāgojumus un saglabājiet failu, pirms pārbaudāt, vai kļūda joprojām ir atkārtojama.

Ja jums joprojām ir kļūda pat pēc tam, kad esat to izdarījis un restartējis pakalpojumu, pēc tam mēģiniet zemāk esošajā attēlā un pārliecinieties, ka rindā PermitTTY aiz tā ir vārds jā. Ja šī ir pēdējā faila rindiņa, tad pārliecinieties, vai pēc tam ir tukša jauna rindiņa. GNU nano šo uzdevumu pēc noklusējuma veic automātiski.

Pirms mēģināt vēlreiz atkārtot kļūdas ziņojumu, jums būs jārestartē visi attiecīgie pakalpojumi.

3 minūtes lasīts