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 ?
Réponses
Trop de publicités?(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.
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,
- 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 )
- 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 - Il est clair que cela ne fonctionne pas si vous interagissez avec les menus ou si vous éditez des fichiers, etc.
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\'
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
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.
- Réponses précédentes
- Plus de réponses