75 votes

Existe-t-il un moyen d'éviter le délai de saisie de SSH ?

Puis-je dire à SSH de n'envoyer les données qu'après avoir appuyé sur la touche Entrée ou la touche de tabulation, et non après chaque pression de touche individuelle ?

4voto

Xmindz Points 600

(mise à jour 2020)

Aussi ridicule que cela puisse paraître, j'ai découvert que l'installation de TigerVNC, puis le lancement d'un terminal distant et le "streaming" de l'écran via le protocole VNC offrent une bien meilleure expérience, et suppriment les décalages même sur les connexions qui ne sont pas bonnes.

3voto

EightBitTony Points 9121

Vous pouvez émuler ce comportement si vous exécutez des commandes en faisant,

ssh user@targetmachine 'mes commandes dans une chaîne de caractères'.

mais,

  1. cela ajoute un délai supplémentaire dans la création de la connexion (peut être atténué par l'utilisation de l'option connexions ssh multiplexées )
  2. si vous n'avez pas de clé privée sans mot de passe, vous allez devoir utiliser ssh-agent ou tapez le mot de passe dans
  3. Il est clair que cela ne fonctionne pas si vous interagissez avec les menus ou si vous éditez des fichiers, etc.

3voto

Kjell Points 111

Vous pouvez utiliser tmux pour obtenir un écho fluide de votre frappe. Exécutez tmux localement. Si vous avez le Shell ssh dans un volet, et un Shell local dans un volet en dessous, alors depuis le volet local vous pouvez envoyer des clés au volet distant.

tmux send-keys -t top 'ls' C-m

Commandes interactives et petites commandes que je tape directement dans le lagging ssh Shell. Dès que le décalage commence à gêner ma frappe, je passe au volet local et j'utilise des touches d'envoi. Cela fonctionne même au milieu de la saisie d'une commande.

Pour le raccourcir, j'ai ajouté ceci à mon .bashrc

function ts {
    args=$@
    tmux send-keys -t right "$args" C-m
}

Merci à Christian Pelczarski pour avoir expliqué les send-keys : https://minimul.com/increased-developer-productivity-with-tmux-part-5.html

Vous devrez utiliser des échappatoires lorsque vous utilisez des guillemets, par exemple

ts git config --global alias.lola \'log --graph --decorate --pretty=oneline --abbrev-commit --all\'

1voto

user197223 Points 9

Cela fait ce que vous voulez. Vous devez cependant installer à la fois le client et le serveur, et l'amont d'OpenSSH n'a jamais adopté les changements. https://github.com/hyc/OpenSSH-LINEMODE

0voto

ks1322 Points 101

J'accède à un VPS SliceHost (USA) depuis la Belgique. Le délai est suffisamment important pour que je ne comprenne plus rien.

Une façon possible de réduire le délai est d'utiliser la compression pour ces connexions SSH longue distance :

ssh -C user@host

En man ssh :

Demande la compression de toutes les données (y compris stdin, stdout, stderr, et les données pour les connexions X11, TCP et UNIX transférées). L'adresse algorithme de compression est le même que celui utilisé par gzip(1). La compression est souhaitable sur les lignes modem et autres connexions lentes, mais elle ne ralentit ralentira les choses sur les réseaux rapides. La valeur par défaut peut être définie sur un hôte par hôte dans les fichiers de configuration ; voir l'option Compression l'option Compression.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X