NUSTATYTI: Pseudoterminalas nebus paskirstytas, nes „stdin“ nėra terminalas



Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas

Daugeliu atvejų klaidinančią klaidą „pseudoterminalas nebus paskirstytas, nes„ stdin “nėra terminalas“ gausite tik tada, kai vykdote kažkokią SSH komandą iš scenarijaus. Jei tą pačią komandą vykdote iš komandinės eilutės, ji gali veikti puikiai.



Prieš tęsdami toliau, įsitikinkite, kad pridėjote viešąjį raktą prie SSH agento, tada bandykite dar kartą naudoti ssh. Gali būti, kad jums tiesiog trūksta rakto. Kita vertus, jei tai neveikia, turėsite atlikti šiek tiek trikčių šalinimo scenarijuje.



1 metodas: priversti ir išjungti pseudo-tty paskirstymą

Yra keletas komandų eilutės parinkčių, kurios gali greitai išspręsti problemą. Pabandykite ssh -t -t -R, po to likusius dalykus, prie kurių bandėte prisijungti, kad priverstumėte pseudoterminalinį paskirstymą. Pvz., Tarkime, kad prisijungdami prie savo paskyros pavyzdyje.com ketinote naudoti ssh -p 80 appuals@ssh.example.com, kuris, žinoma, yra manekenas neegzistuojantiems dokumentams.



Pabandykite paleisti pvz. ssh -t -t -R -p 80 appuals@ssh.example.com ir sužinokite, ar tai išsprendžia problemą. Žinoma, norėdami sėkmingai prisijungti prie sistemos, turėsite pakeisti vardą tikra savo paskyra ir pagrindinio kompiuterio vardu. Tai priverčia paskirstyti terminalą, todėl neturėtumėte matyti, kad pseudoterminalas nebus paskirstytas, nes „stdin“ nėra terminalo klaida.

Kita vertus, galite tiesiog gauti nuolatinę klaidos pranešimų eilutę. Kai kurie vartotojai pastebėjo, kad tai gali būti laikoma linksma.

Nepaisant to, tai tikrai kelia vargą, todėl naudokite Ctrl + C, kad užmuštumėte procesą.



pseudoterminalas

Galite pabandyti naudoti tik vieną -t jungiklį arba padidinti skaičių. Jei tai neveikia, tada pakeiskite bet kokius -t jungiklius komandoje -T jungikliu, pvz. ssh -T -R -p 80 appuals@ssh.example.com ir pažiūrėkite, ar tai veikia.

Šis metodas iš viso išjungia visą pseudoterminalo paskirstymo procesą, todėl jis gali veikti tais atvejais, kai to neverčia. Žinoma, tai neturi kelti problemų iš komandinės eilutės, tačiau įsitikinkite, kad pastebėjote, kuri parinktis veikia iš jūsų scenarijaus, kad galėtumėte ją naudoti kituose scenarijuose, kuriuos turite paleisti, kad galėtumėte pasiekti minėtą serverį.

Kadangi komanda ssh davė šias dvi priešingas parinktis panašius pavadinimus, atminkite, kad -t priverčia paskirstyti pseudoterminalus, o -T jį išjungia. Šios parinktys skiriamos didžiosiomis ir mažosiomis raidėmis, ir jos dažnai reikalingos iš scenarijų vidaus, nes „ssh“ reikia tradicinio TTY terminalo, kad veiktų. Natūralu, kad jūsų atveju šiam tikslui naudosite savo terminalo emuliatorių.

2 metodas: sshpass naudojimas

Kai kurie žmonės gali pastebėti, kad jų scenarijai geriau veikia su komanda sshpass, kuri nėra numatyta. Visada galite jį įdiegti naudodami „sudo apt-get install sshpass“ arba „sudo yum install sshpass“, jei norite pabandyti arba dėl to, kad jums to reikia konkrečiam naudojimo atvejui.

Jei dar nenaudojate, tikriausiai jums to nereikia. Nepaisant to, galite naudoti tuos pačius metodus, kad nustebintumėte klaidų pranešimus, susijusius su pseudoterminalo paskirstymu, ir tokioje aplinkoje.

Pavyzdžiui, naudokite sshpass -p slaptažodį ssh -T appuals@ssh.example.com, kad priverstumėte sistemą veikti iš jūsų scenarijaus.

3 metodas: užduočių valdymo klaidų taisymas

Kartais galite pataisyti dar vieną klaidos pranešimą, net kai visa tai pataisysite. Jei gaunate įspėjimą, kad nėra prieigos prie tty, tada jums primenama, kad jūsų apvalkale nėra darbo kontrolės, turėtumėte dirbti šiek tiek normaliai.

Ši klaida atsiranda dėl to, kad nuotoliniame serveryje kažkas yra netaisyklinga, susijusi su csh, tcsh ar galbūt su „Almquist“ ar kitu apvalkalu. Galbūt to nepastebėjote, nes gaudavote kitų klaidų pranešimų, tačiau jei nematote kitų apie pseudoterminalus, turėtų būti įmanoma tęsti palyginti taip, kaip paprastai.

Vis dėlto nenorite bandyti naudoti „Ctrl“ + Z, kad sustabdytumėte procesus, nes gali būti, kad nėra galimybės jų paleisti iš naujo. Jei išeidami gaunate klaidos pranešimą, kuriame rašoma, kad yra sustabdytų darbų, jums nebus leista atsijungti.

sustabdyti darbai

Norėdami uždaryti visus darbus, kurių negalite uždaryti, naudokite komandas „ps and kill“, darant prielaidą, kad neprieštaraujate darbo netekimui. Dabar galėsite išeiti.

Žymos „Linux“ instrukcijos ssh 3 minutes perskaityta