Labojums: Pseidotermināls netiks piešķirts, jo stdin nav termināls



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

Vairumā gadījumu jūs saņemsit mulsinošu kļūdu “Pseidoterminals netiks piešķirts, jo stdin nav termināls” tikai tad, ja no skripta izpildāt sava veida SSH komandu. Ja to pašu komandu izmantojat no komandrindas, tā var darboties pilnīgi labi.



Pirms turpināt, pārliecinieties, vai esat pievienojis savu publisko atslēgu SSH aģentam, un pēc tam mēģiniet vēlreiz izmantot ssh. Iespējams, tikko trūka atslēgas. No otras puses, ja tas nedarbojas, skriptā būs jāveic neliela problēmu novēršana.



1. metode: Pseido-tty piešķiršanas piespiešana un atspējošana

Pastāv pāris komandrindas opciju, kas var ātri novērst problēmu. Izmēģiniet ssh -t -t -R, kam seko pārējais, ar ko mēģinājāt pieslēgties, lai piespiestu pseidotermināla piešķiršanu. Piemēram, pieņemsim, ka jūs izmantojat ssh -p 80 appuals@ssh.example.com, lai pieteiktos savā kontā vietnē example.com, kas, protams, ir manekens dokumentācijai, kuras nav.



Mēģiniet palaist, piem. ssh -t -t -R -p 80 appuals@ssh.example.com un pārbaudiet, vai tas novērš problēmu. Lai veiksmīgi pieteiktos sistēmā, jums, protams, būs jāaizstāj vārds ar faktisko kontu un resursdatora nosaukumu. Tas piespiež termināla piešķiršanu, tāpēc jums nevajadzētu redzēt, ka pseidotermināls netiks piešķirts, jo stdin nav termināla kļūda.

No otras puses, jūs varat vienkārši iegūt pastāvīgu kļūdu ziņojumu virkni. Daži lietotāji ir atzīmējuši, ka to varētu uzskatīt par amizantu.

Tas neatkarīgi no tā, protams, ir nomākta, tāpēc, lai nogalinātu procesu, izmantojiet Ctrl + C.



pseidotermināls

Varat mēģināt izmantot tikai vienu -t slēdzi vai palielināt skaitli. Ja tas nedarbojas, nomainiet komandā visus -t slēdžus ar -T slēdzi, piem. ssh -T -R -p 80 appuals@ssh.example.com un pārbaudiet, vai tas darbojas.

Šī metode atspējo visu pseidotermināla piešķiršanas procesu kopumā, tāpēc tā var darboties gadījumos, kad tā piespiešana nedarbojas. Protams, nevienai no tām nevajadzētu būt komandrindas problēmai, taču noteikti izdariet piezīmi, kad atradīsit, kura opcija darbojas no jūsu skripta, lai to varētu izmantot visos turpmākajos skriptos, kas jums jāpalaiž, lai piekļūtu minētajam serverim.

Tā kā komanda ssh šīm divām pretējām opcijām piešķīra līdzīgus nosaukumus, atcerieties, ka -t piespiež piešķirt pseidotermināļus, bet -T to atspējo. Šīs opcijas ir reģistrjutīgas, un tās bieži ir nepieciešamas no skriptu iekšpuses, jo ssh darbībai nepieciešams tradicionāls TTY terminālis. Protams, jūsu gadījumā šim nolūkam jūs izmantojat termināļa emulatoru.

2. metode: sshpass izmantošana

Daži cilvēki var uzskatīt, ka viņu skripti labāk darbojas ar komandu sshpass, kas pēc noklusējuma nav iekļauta. Jūs vienmēr varat to instalēt, izmantojot sudo apt-get install sshpass vai sudo yum install sshpass, ja vēlaties to izmēģināt vai tāpēc, ka jums tas ir nepieciešams jūsu konkrētajam lietošanas gadījumam.

Ja jūs to vēl neizmantojat, iespējams, jums tas nav vajadzīgs. Neskatoties uz to, jūs varat izmantot tos pašus paņēmienus, lai pārsteigtu kļūdu ziņojumus, kas saistīti ar pseidotermināla piešķiršanu arī šādā vidē.

Piemēram, izmantojiet sshpass -p paroli ssh -T appuals@ssh.example.com, lai piespiestu sistēmu darboties no skripta iekšpuses.

3. metode: Darba pārvaldības kļūdu novēršana

Reizēm jūs varat saņemt vēl vienu kļūdas ziņojumu pat pēc tam, kad esat to visu izlabojis. Ja saņemat brīdinājumu, ka nav piekļuves tty, un pēc tam jums tiek atgādināts, ka jūsu čaulā nav darba kontroles, jums vajadzētu būt iespējai strādāt nedaudz normāli.

Šo kļūdu izraisa kaut kas neregulārs attālajā serverī, kas saistīts vai nu ar csh, tcsh vai, iespējams, pat ar Almquist vai citu apvalku. Iespējams, jūs to neesat pamanījis, jo saņemat citus kļūdu ziņojumus, taču, ja neredzat citus par pseidotermināļiem, vajadzētu būt iespējai turpināt salīdzinoši tāpat, kā parasti.

Tomēr, iespējams, nevēlaties mēģināt izmantot Ctrl + Z, lai apturētu procesus, jo, iespējams, nav iespēju tos atkal dublēt. Ja, izejot, tiek parādīts kļūdas ziņojums, kas raksturo apturētus darbus, jums nebūs atļauts atteikties.

pārtrauktas darba vietas

Izmantojiet komandas ps un kill, lai aizvērtu visus darbus, kurus nevarat aizvērt, pieņemot, ka jums nav iebildumu zaudēt darbu šajā procesā. Jūs varēsiet iziet tūlīt.

Tagi Linux instrukcijas ssh 3 minūtes lasīts