Interagir avec son client SSH
Le samedi 12 janvier 2013 à 22:37 - Lien permanent
Pendant des années, j'ai utilisé mon client OpenSSH (ligne de commande) en me figurant qu'une fois lancé, il n'y avait pas moyen d'interagir avec lui : tout ce que je tape au clavier est envoyé à la machine distante. Or parfois, une connexion SSH meurt (par exemple parce qu'on a déplacé la machine cliente d'un réseau à un autre...) et on aimerait bien envoyer la commande quit à son client.
Toutes les frappes au clavier sont-elles vraiment transmises à la machine distante ? Que nenni !
Il existe une séquence d'échappement magique, Enter
puis ~
, qui permet de dialoguer avec le client SSH. Notons que ces deux premières touches la touche Enter est bien transmise à l'hôte distant, avant interprétation des caractères suivants en local ; le dernier caractère constitue une commande pour le client SSH. Nous avons par exemple :
.
(disconnect) : ferme la connexion et le client, ce que je cherchais plus haut. Il faut donc taper en tout trois touches :Enter
puis~
puis.
^Z
: met le client à l'arrière planC
: permet de rajouter des options de forwarding de port sur la ligne de commande?
: affiche la liste des commandes disponibles
Mise à jour le 18 janvier 2013 : seule la touche Enter est transmise à l'hôte.
Commentaires
Non, le caractère d'échappement (tilde par défaut) n'est *pas* envoyé à la machine distante ! Il le sera si le caractère suivant (la commande) ne correspond pas à une séquence connue.
Notez aussi que le caractère d'échappement peut être changé via -e (ou EscapeChar), ce qui est utile sur un azerty.
En effet ! Merci de cette correction, reportée dans le texte du billet.