J'exécute la commande suivante sur ssh dans un environnement de test, en tant que root:
ssh <remote_srv> "apt-get autoremove"
Dans mon sshd_config, j'ai "PermitRootLogin sans mot de passe" et j'ai ajouté le id_rsa.pub de root au fichier allowed_keys sur le serveur distant.
Néanmoins, j'obtiens les erreurs suivantes:
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
J'ai regardé cela dans les pages de man de ssh, mais je ne pouvais pas comprendre les explications sur des pseudo-termes et des ttys.
Y a-t-il quelqu'un qui peut expliquer les erreurs ci-dessus? Je suppose que c'est une option manquante, mais laquelle?
Les deux plates-formes sont Ubuntu 14.04 LTS.
La solution d'Alex supprime les erreurs, et il a presque résolu le problème, mais il ne vous permet pas de répondre aux questions (ce qui est bien lorsque vous avez préconfiguré les réponses et que vous exécutez un script, mais vraiment ennuyant lorsque vous essayez de nouveaux packages. ). Le problème principal est une interaction entre les hypothèses émises par ssh et les différentes interfaces de debconf.
Commençons par ssh. ssh suppose que lorsque vous ne spécifiez pas de commande à distance, vous voulez un pty et que vous ne spécifiez pas de télécommande (ce qui fonctionne remarquablement bien dans 90% des cas, mais pas celui-ci). Cela peut être remplacé par l'
-t
option qui force un pty ou l'-T
option qui ne force pas pty (ou les options de fichier de configuration correspondantes). En outre, lors de l’utilisation d’un pty, laTERM
variable d’environnement est copiée (des exceptions peuvent s’appliquer à la documentation de contrôle pour plus de détails et au formulaire officiel de participation au concours). Il convient également de noter que l’-x
option désactive le transfert X11 et l’-X
active.Debconf lui-même n'a pas d'exigences d'interactivité (de par leur conception), mais les différentes interfaces le font et chacune a des exigences différentes.
Je crois que la meilleure interface est gnome (il y a aussi une interface que je n'ai pas réussi à faire fonctionner). L’interface GNOME (et celle de kde également) nécessite des bibliothèques autres que celles par défaut et un serveur X11; par conséquent, la ligne de commande permettant de forcer l’intérieur du GNOME (une fois les bibliothèques appropriées installées) serait:
ou si vous préférez kde
La boîte de dialogue (la valeur par défaut) nécessite un terminal utilisateur et un terminal avec un niveau minimum de fonctionnalités spécifiées dans la variable TERM (il s’agit en pratique de tout élément comportant une description terminfo complète, à l'exception de dumb).
ou
l'interface de lecture a des exigences moins strictes et fonctionnera avec des terminaux stupides, mais aura besoin d'un pty.
L'interface de l'éditeur dépend d'un éditeur qui aurait des exigences spécifiques selon l'éditeur.
L’interface non interactive n’a pas d’exigences, mais elle ne pose aucune question (qui peut ne pas être ce que vous voulez).
la source
ssh -t
pour plus de détails et d'autres options, consultez la page de manuel ssh. Relisez également le deuxième paragraphe de cette réponse.