Opgelost: sudo: geen tty aanwezig en geen askpass-programma opgegeven
De no tty present en geen askpass-programma gespecificeerde output-regel is een van die ssh-foutmeldingen die echt niet zo behulpzaam is omdat het niet echt op het punt komt waarop het probleem wordt veroorzaakt. Meer dan waarschijnlijk, werkt u eigenlijk met een valide TTY van een of andere soort wanneer u het bericht ziet en waarschijnlijk heeft u met het invoeren van uw sudo-wachtwoord over ssh al rekening gehouden. Je bent waarschijnlijk bezig met een syntaxisfout, maar het bericht gaat niet direct in op dit feit.
Aangezien dit een probleem is dat geassocieerd is met ssh zelf, zult u het probleem waarschijnlijk kunnen reproduceren op Linux, FreeBSD, macOS en Cygwin's Unix-services op Microsoft Windows. Gelukkig moet de fix vrijwel hetzelfde zijn op al deze platforms.
Methode 1: Een terminal zoeken voor ssh
Hoewel je waarschijnlijk al vanaf een terminal werkt, beseft ssh dit waarschijnlijk niet. Het kan nog steeds proberen te zoeken naar een TTY-terminalemulator, ondanks het feit dat u zich binnen een opdrachtpromptvenster bevindt. Probeer de fout te reproduceren om dit te testen. We hebben een virtuele machine geconfigureerd om als voorbeeld te dienen en hebben ssh [email protected] 'sudo /var/mail/startup.sh' als een test uitgevoerd. Natuurlijk wil je de opdracht en de ssh-regel veranderen in iets dat overeenkomt met wat je probeert te doen.
U moet ervoor zorgen dat u zich aanmeldt bij de server die u dacht dat u was. Ongeacht, controleer om te zien of u nog steeds het sudo: no tty present en geen askpass programma gespecificeerde foutmelding ontvangt. Meer dan waarschijnlijk, als u het nog steeds ontvangt, zult u het drie keer zien en mogelijk zelfs worden gevraagd om uw wachtwoord in te voeren zoals u zou hebben als u sudo lokaal op Debian of Ubuntu uitvoert.
Probeer -t na ssh toe te voegen om uw syntaxisfout te corrigeren. Negen van de tien keer zal dit SSH dwingen om een virtuele TTY aan zichzelf toe te wijzen en te doen alsof het binnen een echte terminal loopt. U hoeft niets anders aan uw opdracht te veranderen. Voeg eenvoudig de optie -t toe na de letters ssh en houd de host en het doorgegeven commando op dezelfde manier. U zult dit ook willen onthouden als u ooit ssh moet uitvoeren in het laatste deel van uw opdracht.
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 klikkenAls u bijvoorbeeld hetzelfde soort fout krijgt bij het uitvoeren van een opdracht die is geformatteerd als ssh -t [email protected] 'ssh [email protected]' moet u de optie -t na de eerste ssh behouden tot Voorkom het. Merk op dat als u later de tweede opdracht hebt gewijzigd om gegevens te produceren of te gebruiken, u helemaal geen -t zou willen gebruiken. Als u bijvoorbeeld kat in plaats van een script gebruikt, kunt u de -t dumpen omdat u daarvoor geen terminal hoeft toe te wijzen.
Methode 2: Patchen van het visudo-bestand
Mogelijk hebt u ook een configuratieprobleem waardoor deze fout optreedt. Wijzig het visudo-bestand door de opdracht sudo visudo uit te geven, en onthoud dat u dit bestand nooit op een andere manier wilt bewerken. U moet een regel vinden met ALL = NOPASSWD erin gevolgd door de soorten opdrachten die u niet hoeft in te voeren om het beheerderswachtwoord in te voeren.
Elke individuele opdracht moet eindigen met een komma behalve de laatste op de regel. Dus als je iets had dat als / sbin / poweroff / sbin / start / sbin / stop leest, zal dit alles als een enkel commando behandelen en de fout naar je toe gooien. Als u een opdracht mist die u via ssh probeert uit te voeren, krijgt u deze fout ook. Voer de nodige aanpassingen uit en sla het bestand op voordat u controleert of de fout nog steeds reproduceerbaar is.
Mocht je de fout nog steeds hebben nadat je dit hebt gedaan en de service opnieuw wilt starten, probeer dan de volgende opdracht in de onderstaande afbeelding en zorg ervoor dat de regel PermitTTY achter het woord 'yes' staat. Als dit de laatste regel in uw bestand is, zorg er dan voor dat er daarna een lege nieuwe regel is. GNU nano voert deze taak standaard automatisch uit.
U moet alle relevante services opnieuw starten voordat u probeert het foutbericht opnieuw te reproduceren.
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