Projet

Général

Profil

Anomalie #3600

Ajout du paramètre -t pour ssh dans ./do.sh ?

Ajouté par Christian P. Momon il y a environ 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Fermé
Priorité:
Normale
Assigné à:
Christian P. Momon
Catégorie:
-
Version cible:
Début:
17/02/2019
Echéance:
% réalisé:

0%

Temps estimé:
Difficulté:
2 Facile

Description

Fréquemment en faisant un dist-upgrade via le git/script/do.sh, l'action plante quand ça passe en mode interactif.
Au point que je suis obligé de faire un ctrl-c, me connecter sur la vm, tuer le apt-get, lancer un dpkg-reconfigure -a

Paramétrage de certbot (0.28.0-1~deb9u1) ...

Fichier de configuration « /etc/cron.d/certbot »
 ==> Modifié (par vous ou par un script) depuis l'installation.
 ==> Le distributeur du paquet a fourni une version mise à jour.
   Que voulez-vous faire ? Vos options sont les suivantes :
    Y ou I  : installer la version du responsable du paquet
    N ou O  : garder votre version actuellement installée
      D     : afficher les différences entre les versions
      Z     : suspendre ce processus pour examiner la situation
 L'action par défaut garde votre version actuelle.
*** certbot (Y/I/N/O/D/Z) [défaut=N] ? D
WARNING: terminal is not fully functional
-  (press RETURN)
N
^C

On me souffle que rajouter un paramètre -t à la commande ssh résoudrait ce problème. Des avis ?

Historique

#1

Mis à jour par Quentin Gibeaux il y a environ 5 ans

J'ai lu le man mais j'ai pas compris ce que ça ajoutait : ça change quoi -t dans ce cas précis ?

#2

Mis à jour par Christian P. Momon il y a environ 5 ans

Quentin Gibeaux a écrit :

J'ai lu le man mais j'ai pas compris ce que ça ajoutait : ça change quoi -t dans ce cas précis ?

Le blocage dans le apt-get vient d'un « WARNING: terminal is not fully functional ». Quand on fait "ssh script", la connexion ssh n'utilise pas un pty pleinement fonctionnel en tant que terminal

Le fait de rajouter le -t, ça force la création d'un tty complet qui acceptera toutes les options d'un terminal dont le mode interactif.

La meilleure explication que j'ai trouvé : https://stackoverflow.com/questions/42505339/why-use-t-with-ssh

To have interactive prompt in your ssh shell, you need to have allocated PTY also on the server side. It is done automatically when you call ssh host.

When you allocate this PTY on server, then your local terminal and the remote one are exchanging some additional messages (Terminal control characters),
which give the remote shell information about the size of your local terminal, the remote can update title of your window and so on. This is something
you really don't want when you want to transfer files or just pass the output "as it is". It would modify that and you would get generally something else.
Again, this is done automatically in case you use scp or just noninteractive script as ssh host my_script.

So far good. You don't need the switches. But things might not be always so simple.

You might want to invoke some interactive shell as a command, for example ssh host /bin/zsh. This would work, but it will not be interactive. In this case,
you need to use the -t switch to make it working properly: ssh -t host /bin/zsh.

Donc :

Est-ce un peu plus clair maintenant ?

#3

Mis à jour par Quentin Gibeaux il y a environ 5 ans

Et donc ça donnerait la main pour réagir ?

#4

Mis à jour par Christian P. Momon il y a environ 5 ans

A priori, oui. Si on regarde les logs, on voit que lorsque je demande à voir les différences (« D »), c'est là qu'il entre blocage : rien ne s'affiche et les commandes suivantes sont ignorées. Le « N » que je fais n'est pas pris en compte, d'où mon « ^C » (Ctrl-C).

Avec un « -t », on peut espérer qu'il afficherait normalement et continuerait de servir les touches clavier envoyées.

#5

Mis à jour par Quentin Gibeaux il y a environ 5 ans

on peut tenter ça

#6

Mis à jour par Christian P. Momon il y a environ 5 ans

À noter que le script update-all-guests.sh utilise déjà l'option « -t » ;D

#7

Mis à jour par Christian P. Momon il y a environ 5 ans

Ajouté, commité, pushé.

commit 17df73518971663265a7f214051716b78c3ab005
Author: Christian Pierre MOMON <cmomon@april.org>
Date:   Mon Feb 18 15:59:46 2019 +0100

    Added -t to ssh, required for interactive apt-get dist-upgrade actions.
#8

Mis à jour par Christian P. Momon il y a environ 5 ans

  • Statut changé de Nouveau à Résolu
#9

Mis à jour par Christian P. Momon il y a environ 5 ans

  • Assigné à mis à Christian P. Momon
#10

Mis à jour par Quentin Gibeaux il y a presque 5 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF