Comment puis-je rompre avec une session SSH qui s'est bloquée?

62

Souvent, j'ai une session SSH qui ne répond plus (par exemple, lorsque je perds ma connexion Internet, puis que je me reconnecte). Ctrl+ C, Ctrl+ D, Ctrl+ Zet un zillion d'appuis clavier n'ont aucun effet.

La plupart du temps, je suis déjà tmuxou je byobucours déjà, je peux donc simplement démarrer un autre terminal et me reconnecter. Cependant, cela semble lourd. Comment puis-je déconnecter SSH du terminal actuel?

phunehehe
la source

Réponses:

87

Utilisez le "caractère d'échappement" (normalement, le tilde ~) pour contrôler une session SSH:

  • ~suivi de .ferme la connexion SSH;
  • ~suivi de Ctrl+ Zsuspend le processus SSH;
  • ~suivi d'un autre ~envoie un littéral ~.

Vous pouvez définir le caractère d'échappement à l'aide de l' -eoption ssh .

De plus, rappelez-vous que

Vous devez également penser à appuyer Enteravant ~. Le caractère d'échappement fonctionne lorsqu'il est le premier caractère de la ligne. Et aussi, vous pouvez utiliser ~et plus tard ?pour obtenir de l’aide du client ssh. (Merci au commentaire de Lukasz Stelmach .)

Riccardo Murri
la source
11
Vous devez également penser à appuyer Enteravant ~. Le caractère d'échappement fonctionne lorsqu'il est le premier caractère de la ligne. Et aussi, vous pouvez utiliser ~et plus tard ?obtenir de l’aide du client ssh.
Lukasz Stelmach
7
~suivi de ?vous donne une liste complète des séquences d'échappement prises en charge
Matijs
1

Openssh peut être configuré pour envoyer des messages actifs du client ou du serveur à l'autre côté. Si aucune réponse n'est obtenue, la connexion sera terminée. Du côté du serveur, voir les options ClientAliveIntervalet ClientAliveCountMaxconfig. Du côté client, voir les options ServerAliveIntervalet ServerAliveCountMax. TCPKeepAliveest également une option, mais est spoofable alors que les anciennes options ne le sont pas, elles sont donc probablement meilleures.

Si vous définissez ces valeurs sur des valeurs raisonnables, votre connexion ne sera probablement jamais interrompue. Le seul inconvénient est que vos connexions SSH peuvent rester ouvertes si vous préférez, elles pour terminer, pour des raisons de sécurité.

Consultez la page de manuel OpenSSH sshd config et la page de manuel OpenSSH ssh config pour de plus amples informations.

Faheem Mitha
la source