Fix: Pseudo-terminal wordt niet toegewezen omdat stdin geen terminal is

In de meeste gevallen ontvang je een verwarrende pseudo-terminal die niet wordt toegewezen, omdat stdin geen terminalfout is alleen als je een soort SSH-opdracht uitvoert vanuit een script. Als u dezelfde opdracht uitvoert vanaf de opdrachtregel, werkt dit mogelijk prima.

Controleer voordat je verder gaat of je je openbare sleutel hebt toegevoegd aan de SSH-agent en probeer vervolgens opnieuw SSH te gebruiken. Misschien heb je net een sleutel gemist. Aan de andere kant, als dit niet werkt, moet je een beetje problemen oplossen in je script.

Methode 1: Pseudo-tty toewijzing forceren en uitschakelen

Er zijn een paar commandoregelopties waarmee u het probleem mogelijk snel voor u kunt oplossen. Probeer ssh -t -t-R gevolgd door de rest van waar je mee probeerde te verbinden om pseudo-terminal allocatie te forceren. Stel dat u ssh -p 80 [email protected] zou gaan gebruiken om u aan te melden bij uw account op example.com, wat natuurlijk een dummy is voor documentatie die niet bestaat.

Probeer bijvoorbeeld ssh -t -t-R -p 80 [email protected] uit te voeren en kijk of dit het probleem oplost. Je moet natuurlijk de naam vervangen door je huidige account en hostnaam om met succes in het systeem te loggen. Dit forceert de toewijzing van een terminal, dus u zou niet moeten zien dat de pseudo-terminal niet wordt toegewezen, omdat stdin geen terminalfout is.

Aan de andere kant kun je gewoon eindigen met een constante reeks foutmeldingen. Sommige gebruikers hebben opgemerkt dat dit als grappig kan worden beschouwd.

Het is echter zeker frustrerend, dus gebruik Ctrl + C om het proces te beëindigen.

U kunt het proberen met slechts één t-schakelaar of het verhogen van het nummer. Als dit niet werkt, vervang dan any -t switches door een -T switch in de opdracht, bijv. Ssh -T-R -p 80 [email protected] en kijk of dat werkt.

Met deze methode wordt het gehele toewijzingsproces voor pseudo-terminals helemaal uitgeschakeld, dus het kan werken in gevallen waarin forceren niet werkt. Dit zou natuurlijk geen probleem moeten zijn vanaf de opdrachtregel, maar zorg er wel voor dat u een notitie maakt als u ontdekt welke optie werkt vanuit uw script zodat u deze kunt gebruiken in toekomstige scripts die u moet uitvoeren om toegang te krijgen tot genoemde server.

PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan ​​door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken

Omdat de ssh-opdracht deze twee tegengestelde opties vergelijkbare namen gaf, onthoudt dat -t de toewijzing van pseudo-terminals afdwingt terwijl -T deze uitschakelt. Deze opties zijn hoofdlettergevoelig en zijn vaak nodig vanuit scripts omdat ssh een traditionele TTY-terminal nodig heeft om te werken. Natuurlijk zou u in uw geval uw terminalemulator voor dit doel gebruiken.

Methode 2: sshpass gebruiken

Sommige mensen vinden misschien dat hun scripts beter werken met de sshpass-opdracht, die standaard niet wordt meegeleverd. Je kunt het altijd installeren met sudo apt-get install sshpass of sudo yum install sshpass als je het liever eens wilt proberen of omdat je het nodig hebt voor je specifieke gebruik.

Als je het nog niet gebruikt, heb je het waarschijnlijk niet nodig. Desalniettemin kunt u dezelfde technieken gebruiken om ook in dit soort omgevingen foutmeldingen met betrekking tot pseudo-eindstationtoewijzing te verrassen.

Gebruik bijvoorbeeld sshpass -p wachtwoord ssh -T [email protected] om het systeem te dwingen te werken vanuit je script.

Methode 3: Taakbeheerfouten corrigeren

Soms krijg je nog een ander foutbericht, zelfs nadat je dit allemaal hebt opgelost. Als u een waarschuwing ontvangt die geen toegang tot tty aangeeft en vervolgens wordt eraan herinnerd dat er geen taakcontrole in uw shell is, zou u enigszins normaal moeten kunnen werken.

Deze fout wordt veroorzaakt door iets dat onregelmatig is op de externe server met betrekking tot csh, tcsh of mogelijk zelfs de Almquist of een andere shell. Je hebt het misschien niet gemerkt omdat je andere foutmeldingen kreeg, maar op voorwaarde dat je geen anderen over pseudo-terminals ziet, zou het mogelijk moeten zijn om relatief verder te gaan zoals je normaal zou doen.

In dit geval wil je misschien niet proberen Ctrl + Z te gebruiken om processen te stoppen, omdat er misschien geen manier is om ze weer te laten opstarten. Als u een foutmelding krijgt met de melding dat er gestopte taken zijn wanneer u afsluit, mag u zich niet afmelden.

Gebruik de opdrachten ps en kill om taken te sluiten die u niet kunt sluiten, ervan uitgaande dat u het niet erg vindt om tijdens het proces werk te verliezen. Je kunt nu afsluiten.

PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan ​​door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken

Facebook Twitter Google Plus Pinterest