L'utilisation ssh -t
au lieu de ssh
pour les connexions aux serveurs distants présente plusieurs avantages. Par exemple, je peux directement éditer un fichier avec vim:, ssh -t host vim foo.txt
qui échouerait sinon.
Existe-t-il des circonstances dans lesquelles l'allocation d'un (pseudo) -tty serait une mauvaise chose lors de l'utilisation de ssh?
En plus de ce qui précède...
(1) Différentes manipulations d'évacuation de tilda:
Le "~". escape vous déconnectera si vous avez un pty (-t). Pour une commande de longue durée, vous souhaiterez peut-être empêcher quelqu'un d'arrêter accidentellement le processus s'il tape ~.
$ ssh hostname.tomontime.com -t sleep 60
[type ~. et il se déconnecte] La
connexion à hostname.tomontime.com est fermée.
$ ssh hostname -T sleep 60
[Je tape ~. et il le traite comme des frappes normales, que la commande sleep ignore.]
~.
~.
Essayez la même chose avec CTRL-C. Vous verrez qu'avec -t vous envoyez le CTRL-C au "sommeil". Avec -T, vous envoyez le CTRL-C au programme ssh exécuté sur votre machine. Il peut y avoir des moments où cela fait une différence (c'est-à-dire que le programme gère INT différemment de HUP)
(2) Vous voulez simplement minimiser l'activité de connexion réseau ou pty.
Lorsque vous essayez de redémarrer une machine qui est hors ptys, vous ne voulez pas encourager le système à essayer d'allouer un pty! Cela minimise également les connexions réseau qui devront être fermées (retardant le redémarrage).
Cela fonctionnera plus rapidement et de manière plus fiable:
ssh -T hostname reboot
Cela peut avoir des problèmes:
ssh -t hostname reboot
la source
ssh -t crée un pseudo terminal sur la machine distante. Ceci est utile si vous enchaînez les commandes ssh sur plusieurs serveurs et que vous voulez un vrai terminal de l'autre côté (vous pouvez donc utiliser 'vi' par exemple).
Vous pourriez ne PAS vouloir '-t' lorsque les scripts de connexion se comportent différemment s'il y a un terminal. C'est une mauvaise pratique à mon humble avis, mais j'ai vu des cas où un script de connexion vérifie le TTY avant 1) de définir l'invite et 2) d'étendre le chemin vers de nombreuses applications interactives.
Dans un autre cas (mentionné par TomOnTime ci-dessus), j'ai en fait rencontré des cas où tous les ATS (ptys) sont épuisés. Évidemment une mauvaise configuration, mais pas besoin de mâcher une ressource pour un tas de tunnels et de rsyncs.
la source