Fix: Pseudo-terminal vil ikke bli tildelt fordi stdin ikke er en terminal

I de fleste tilfeller vil du motta en forvirrende pseudo-terminal ikke bli tildelt fordi stdin ikke er en terminalfeil bare når du kjører en slags SSH-kommando fra et skript. Hvis du kjører samme kommando fra kommandolinjen, kan det virke helt fint.

Før du går videre, må du kontrollere at du har lagt til din offentlige nøkkel til SSH-agenten, og prøv deretter å bruke ssh igjen. Du har kanskje nettopp manglet en nøkkel. På den annen side, hvis dette ikke virker, må du gjøre en liten feilsøking i skriptet.

Metode 1: Tvinge og deaktivere pseudotittildeling

Det er et par kommandolinjevalg som kan løse problemet raskt for deg. Prøv ssh -t -t -R etterfulgt av resten av det du prøvde å koble til for å tvinge pseudo-terminal tildeling. La oss for eksempel si at du skulle bruke ssh -p 80 [email protected] for å logge på kontoen din på example.com, som selvsagt er en dummy for dokumentasjon som ikke eksisterer.

Prøv å kjøre f.eks. Ssh -t -t -R-p 80 [email protected] og se om dette løser problemet. Du må selvfølgelig erstatte navnet med din faktiske konto og vertsnavn for å logge seg inn i systemet. Dette tvinger tildelingen av en terminal, så du bør ikke se at pseudo-terminalen ikke vil bli tildelt fordi stdin ikke er en terminalfeil.

På den annen side kan du bare ende opp med en konstant streng feilmeldinger. Noen brukere har bemerket at dette kan anses å være morsomt.

Det er sikkert frustrerende, uansett, så bruk Ctrl + C for å drepe prosessen.

Du kan enten prøve å bruke bare en-t bryter eller øke nummeret. Hvis dette ikke virker, erstatt deretter -t-brytere med -T-bryteren i kommandoen, f.eks. Ssh -T -R-p 80 [email protected] og se om det fungerer.

Denne metoden deaktiverer hele den pseudo-terminale allokeringsprosessen helt, slik at det kan fungere i tilfeller hvor det ikke tvinges. Selvfølgelig, ingen av dette bør være et problem fra kommandolinjen, men sørg for å lage et notat når du finner hvilket alternativ som fungerer fra skriptet ditt, slik at du kan bruke det i fremtidige skript du må løpe for å få tilgang til den nevnte serveren.

PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke her

Siden ssh-kommandoen ga disse to motsatte alternativene lignende navn, husk at -t tvinger tildeling av pseudo-terminaler mens -T deaktiverer det. Disse alternativene er saksfølsomme, og de er ofte nødvendige fra innsiden av skript fordi ssh trenger en tradisjonell TTY-terminal for å fungere. Naturligvis, i ditt tilfelle vil du bruke din terminalemulator til dette formålet.

Metode 2: Bruke sshpass

Noen kan finne ut at deres skript fungerer bedre med sshpass-kommandoen, som ikke er inkludert som standard. Du kan alltid installere det med sudo apt-get installer sshpass eller sudo yum installer sshpass hvis du foretrekker å prøve den, eller fordi du trenger den for ditt spesifikke brukstilfelle.

Hvis du ikke allerede bruker det, trenger du sannsynligvis ikke det. Likevel kan du bruke de samme teknikkene til å overraske feilmeldinger knyttet til pseudo-terminal tildeling i dette slags miljø også.

For eksempel, bruk sshpass -p passord ssh -T [email protected] for å tvinge systemet til å fungere fra innsiden av skriptet ditt.

Metode 3: Å fikse jobbadministrasjonsfeil

Noen ganger kan du få en annen feilmelding selv etter å ha festet alt dette opp. Hvis du mottar en advarsel som ikke har tilgang til tty og du blir minnet om at det ikke er jobbkontroll i skallet ditt, bør du kunne jobbe noe normalt.

Denne feilen skyldes at noe er uregelmessig på den eksterne serveren som er relatert til enten csh, tcsh eller muligens til og med Almquist eller annet skall. Du har kanskje ikke lagt merke til det fordi du fikk andre feilmeldinger, men hvis du ikke ser noen andre om pseudo-terminaler, bør det være mulig å fortsette relativt som du vanligvis ville.

Du vil kanskje ikke prøve å bruke Ctrl + Z i dette tilfellet for å stoppe prosesser, fordi det ikke kan være noen måte å få dem startet sikkerhetskopiert igjen. Hvis du får en feilmelding som leser, er det stoppet jobber når du avslutter, så får du ikke lov til å logge ut.

Bruk ps og kill-kommandoene for å lukke jobber du ikke kan stenge, forutsatt at du ikke har noe imot å miste arbeidet i prosessen. Du kan avslutte nå.

PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke her

Facebook Twitter Google Plus Pinterest