How to solve "sudo: no tty present and no askpass program specified" when trying to run a shell from Jenkins
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
FYI - kann Ihnen bei Ihrer Suche helfen - Beachten Sie, dass Sie den SAME-Fehler in einfachem SSH erhalten, wenn Sie einen SSH-Befehl in einen anderen einbetten, z. localhost $ ssh -C 'sudo su - anderer Benutzer ssh / run / this / executable' (Warum nicht SSH direkt auf die Zielbox übertragen? Vielleicht werden SSH-Schlüssel nur zwischen Host1 und Host2 eingerichtet, oder das Netzwerk wird so geroutet, dass der Zugriff auf Host2 ohne Weiterleitung über Host1 verhindert wird. Vielleicht dürfen Sie keine Sudoer oder andere berühren andere Datei auf Host2 ... häufig in Produktionsumgebungen.). In jedem Fall können Sie Nicht-Sudo-Befehle mit den oben genannten Befehlen ausführen. Das Präfixieren mit sudo führt jedoch zu "no tty present". Wie behebt man das mit dem Befehl bare ssh? Geben Sie das -t ein, z. B .: localhost $ ssh -C 'sudo su - ein anderer Benutzer ssh -t / run / this / executable' Nun läuft der Remote Sudo einwandfrei innerhalb von SSH, keine Beschwerden über tty. Der -t hat es zugeteilt. Die Frage ist also, wie man die Option "-t" im Paramiko-Objekt emuliert. Da ist deine Antwort. Dieser Blog versucht es zu erklären, hätte aber möglicherweise mehr Zeit für das 'sudo'-Beispiel aufwenden können: http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/ (Entschuldigung für meinen Hinweis in die richtige Richtung anstelle einer perfekten Antwort ... Ich suche selbst noch nach diesen Informationen).
|