Ich führe den folgenden Befehl über ssh in einer Testumgebung als root aus:
ssh <remote_srv> "apt-get autoremove"
In meiner sshd_config habe ich "PermitRootLogin without-password" und ich habe die id_rsa.pub von root zur authorized_keys-Datei auf dem Remote-Server hinzugefügt.
Trotzdem erhalte ich folgende Fehlermeldungen:
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
Ich habe dies in den Manpages von ssh nachgeschlagen, konnte mich aber nicht mit der Erklärung von Pseudobegriffen und ttys beschäftigen.
Gibt es jemanden, der die obigen Fehler erklären kann? Ich denke, es ist eine fehlende Option, aber welche?
Beide Plattformen sind Ubuntu 14.04 LTS.
Die Lösung von Alex unterdrückt Fehler, und er hat fast die Ursache richtig verstanden, aber es erlaubt Ihnen nicht, Fragen zu beantworten (was in Ordnung ist, wenn Sie die Antworten vorher eingegeben haben und aus einem Skript ausgeführt werden, aber sehr ärgerlich, wenn Sie neue Pakete ausprobieren ). Das Kernproblem ist eine Wechselwirkung zwischen den Annahmen, die von den verschiedenen Frontends von ssh und debconf getroffen wurden.
Beginnen wir mit ssh. ssh geht davon aus, dass Sie, wenn Sie keinen Remote-Befehl angeben, eine Pty auf der Remote-Seite wünschen und dass Sie eine Remote angeben, die Sie nicht möchten (was in 90% der Fälle bemerkenswert gut funktioniert, nur nicht diese). Dies kann durch die
-t
Option, die ein Pty erzwingt, oder durch die-T
Option, die kein Pty erzwingt, (oder durch die entsprechenden Optionen der Konfigurationsdatei) außer Kraft gesetzt werden . Außerdem wird bei Verwendung eines Pty dieTERM
Umgebungsvariable kopiert (Ausnahmen können in der Dokumentation für vollständige Details und das offizielle Gewinnspiel- Anmeldeformular enthalten sein ). Beachten Sie auch, dass die-x
Option die X11-Weiterleitung deaktiviert und-X
aktiviert.Debconf selbst hat keine Interaktivitätsanforderungen (von Entwurf), aber die verschiedenen Frontends haben unterschiedliche Anforderungen.
Ich glaube, das am besten aussehende Frontend ist Gnome (es gibt auch ein ked-Frontend, das ich nicht zum Arbeiten gebracht habe). Für das Gnome-Frontend (und auch für das KDE-Frontend) sind einige nicht standardmäßige Bibliotheken und ein X11-Server erforderlich. Daher müsste die Befehlszeile das Gnome-Frontend erzwingen (sobald die entsprechenden Bibliotheken installiert sind)
oder wenn du lieber kde
Das Dialog-Frontend (die Standardeinstellung) erfordert ein Pty und ein Terminal mit einem Mindestfunktionalitätsniveau, das in der TERM-Variablen angegeben ist (in der Praxis ist dies alles, was eine vollständige terminfo-Beschreibung außer dumm enthält).
oder
Das Readline-Frontend hat weniger strenge Anforderungen und funktioniert mit dummen Terminals, benötigt aber eine Pty.
Das Editor-Frontend hängt von einem Editor ab, an den je nach Editor spezielle Anforderungen gestellt werden.
Das nicht interaktive Frontend hat keine Anforderungen, stellt jedoch keine Fragen (die möglicherweise nicht Ihren Wünschen entsprechen).
quelle
ssh -t
Informationen und andere Optionen finden Sie auf der SSH-Manpage. Lesen Sie auch den zweiten Absatz dieser Antwort noch einmal.