La manière normale de se connecter à un serveur SSH est ssh username@ip_address
. Mais un utilisateur peut seulement vouloir exécuter un programme sur la machine distante. Ainsi, le nom du programme suit l'argument normal qui est ssh username@ip_address <program_name>
. Par exemple ssh username@ip_address ls
,. Cet argument est très bien, sauf pour les programmes interactifs (qui acceptent également l'entrée utilisateur ainsi que la fourniture de sortie), par exemple top
. La sortie est
Variable d'environnement TERM non définie.
ce qui signifie qu'aucun (pseudo-) terminal n'est attaché entre les programmes sshd et top. La solution consiste à ajouter l'argument -t
où la commande entière devient maintenant ssh -t username@ip_address top
.
Ma question est pourquoi sshd par défaut ne peut-il pas également utiliser un pseudo-terminal pour communiquer avec des programmes non interactifs donc il n'est pas nécessaire d'ajouter l' -t
argument pour les programmes interactifs?
RequestTTY yes
(ou force
) dans votre configuration.
top
peut fonctionner en mode batch.