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 plan
  • C : 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.