Fix: Pseudo-terminal kommer inte att tilldelas eftersom stdin inte är en terminal

I de flesta fall får du en förvirrande pseudo-terminal inte tilldelas eftersom stdin inte är ett terminalfel endast när du kör någon form av SSH-kommando från ett skript. Om du kör samma kommando från kommandoraden kan det fungera helt bra.

Innan du går vidare, se till att du har lagt till din allmänna nyckel till SSH-agenten och försök sedan använda ssh igen. Du kanske bara har saknat en nyckel. Å andra sidan, om det inte fungerar, behöver du göra en liten felsökning i ditt skript.

Metod 1: Tvinga och inaktivera pseudotilldelning

Det finns ett par kommandoradsalternativ som kan fixa problemet snabbt för dig. Prova ssh -t -t -R följt av resten av det du försökte ansluta till för att tvinga pseudoterminalallokering. Låt oss säga att du skulle använda ssh -p 80 [email protected] för att logga in på ditt konto på example.com, vilket givetvis är en dummy för dokumentation som inte existerar.

Prova att springa t.ex. ssh -t -t-R -p 80 [email protected] och se om det här åtgärdar problemet. Du måste naturligtvis byta namn med ditt faktiska konto och värdnamn för att logga in med framgång i systemet. Detta tvingar allokering av en terminal, så du bör inte se att pseudoterminalen inte kommer att tilldelas eftersom stdin inte är ett terminalfel.

Å andra sidan kan du bara sluta med en ständig sträng felmeddelanden. Vissa användare har påpekat att detta kan anses vara underhållande.

Det är säkert frustrerande men oavsett, så använd Ctrl + C för att döda processen.

Du kan försöka antingen använda en-t-omkopplare eller öka antalet. Om detta inte fungerar ska du byta alla -t-omkopplare med -T-omkopplare i kommandot, t.ex. ssh -T -R -p 80 [email protected] och se om det fungerar.

Den här metoden inaktiverar hela den pseudoterminala fördelningsprocessen helt och hållet, så det kan fungera i fall där det inte tvingas. Ingen av detta borde vara ett problem från kommandoraden, men var noga med att göra en anteckning när du hittar vilket alternativ som fungerar från ditt skript så att du kan använda det i framtida skript som du måste köra för att komma åt nämnda server.

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

Eftersom ssh-kommandot gav dessa två motsatta alternativ liknande namn, kom ihåg att -t tvingar allokering av pseudo-terminaler medan -T inaktiverar det. Dessa alternativ är skiftlägeskänsliga och de är ofta nödvändiga från insidan av skript eftersom ssh behöver en traditionell TTY-terminal för att fungera. Naturligtvis, i ditt fall skulle du använda din terminalemulator för detta ändamål.

Metod 2: Använda sshpass

Vissa kan tycka att deras skript fungerar bättre med sshpass-kommandot, som inte ingår som standard. Du kan alltid installera det med sudo apt-get install sshpass eller sudo yum installera sshpass om du föredrar att prova eller för att du behöver det för ditt specifika användningsfall.

Om du inte redan använder den behöver du förmodligen inte den. Ändå kan du använda samma tekniker för att överraska felmeddelanden relaterade till pseudoterminal fördelning i denna typ av miljö också.

Till exempel, använd sshpass -p lösenord ssh -T [email protected] för att tvinga systemet att fungera från insidan av ditt skript.

Metod 3: Åtgärda jobbhanteringsfel

Ibland kan du få ett annat felmeddelande även efter att du har fastställt allt detta. Om du får en varning som inte innehåller någon åtkomst till tty och då påminns om att det inte finns någon jobbkontroll i skalet ska du kunna arbeta något normalt.

Detta fel beror på att något är oregelbundet på fjärrservern som är relaterad till antingen csh, tcsh eller eventuellt även Almquist eller annat skal. Du kanske inte har märkt det eftersom du fick andra felmeddelanden, men förutsatt att du inte ser någon annan om pseudo-terminaler, borde det vara möjligt att fortsätta relativt som du vanligtvis skulle.

Du kanske inte vill försöka använda Ctrl + Z i det här fallet för att stoppa processer, eftersom det inte finns något sätt att få dem att starta säkerhetskopiering igen. Om du får ett felmeddelande som läser finns det stoppade jobb när du avslutar, får du inte logga ut.

Använd ps och döda kommandon för att stänga alla jobb som du inte kan stänga, förutsatt att du inte har något emot att förlora arbetet i processen. Du kommer att kunna avsluta nu.

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

Facebook Twitter Google Plus Pinterest