179 votes

Que puis-je faire lorsque ma session SSH est bloquée ?

Parfois, ma session ssh dans le terminal se bloque. Comment puis-je quitter la session ssh et me reconnecter ?

322voto

staffan Points 3299

Type ~. (c'est-à-dire tilde, point) au début d'une ligne. En d'autres termes, appuyez sur Enter alors ~ alors . . (Dans certaines langues, vous devrez peut-être appuyer sur Shift o Alt pour entrer dans le ~ caractère.)

D'une manière générale, le ~ est un caractère d'échappement dans une session SSH lorsque vous le tapez au début d'une ligne. Tapez Enter puis ~? pour voir la liste des commandes d'échappement. Les plus courantes sont

  • ~. pour mettre fin à la connexion
  • ~^Z (presse ~ puis Ctrl + Z ) pour suspendre la connexion et taper une commande localement (exécuter la commande fg pour revenir à la session SSH)

Si vous voulez un tilde au début d'une ligne, appuyez sur ~ deux fois.

4 votes

Je ne sais pas pourquoi il n'est pas demandé sur StackExcnage Unix mais il m'a aidé avec ssh Linix, merci !

1 votes

@BogdanMart : Peut-être que c'est parce que MacOS est plus bogué :)

0 votes

Cela ne fonctionne que si vous avez un clavier ANSI, j'ai un clavier espagnol et cela ne fonctionne pas, en espagnol la touche "tilde" ~ est faite avec AltGr + 4. Mais si je change la disposition du clavier en anglais, et que j'utilise Shift + º, alors ça marche !

11voto

shsteimer Points 8749

Si votre session est bloquée et que l'invite ne répond plus, vous pouvez simplement tuer l'instance de terminal et tous les processus enfants associés à cette instance, dont votre session ssh fait partie, devraient être supprimés avec elle.

Si vous voulez vraiment être minutieux, vous pouvez ouvrir une nouvelle instance de Terminal, rechercher les sessions ssh dans la liste des processus, et les tuer via la ligne de commande :

> ps -ef  |grep ssh
501  1332   142   0 20Dec11 ??         0:01.33 /usr/bin/ssh-agent -l
501 57172 57150   0  1:58pm ttys000    0:00.01 grep ssh
501 57139 57133   0  1:57pm ttys002    0:00.03 ssh -i/Users/ian/code/ec2-keys/id_rsa-gsg-keypair someuser@someinstance.amazonaws.com

> kill 57139

Si ça ne marche pas, essayez :

> kill -9 57139

Ne tuez pas le ssh-agent processus.

Vous pouvez aussi ouvrir le moniteur d'activité, rechercher les sessions et les supprimer :

Activity Monitor filtering for ssh sessions

0 votes

+1, c'est ce que je fais. Souvent, lorsque j'ai laissé une session en cours et que la connexion est interrompue accidentellement ou que je mets l'ordinateur portable en veille, ssh se bloque. J'ouvre un nouvel onglet de console et je tue le PID du processus ssh (ou je ferme l'onglet ssh et j'en ouvre un nouveau).

0 votes

L'utilisation du raccourci clavier fonctionne-t-elle sur votre Mac sans tuer le processus de manière fastidieuse ?

2 votes

Utilisez ~. . Voir ci-dessus.

9voto

daviesgeek Points 35275

Tout ce que vous devez faire pour quitter une session ssh est de taper exit à l'invite.

Essayez d'entrer Shift + ` + .

3 votes

Il n'accepte plus les entrées de l'utilisateur, il est littéralement bloqué. Sur Ubuntu, il existe une combinaison de touches qui met fin à la session et que vous pouvez utiliser dans des cas comme celui-ci. Au bout d'un certain temps, la session se terminera en indiquant broken-pipe mais je préfère ne pas attendre.

1 votes

@Kit J'ai corrigé ma réponse. Désolé pour cela. Je n'avais pas réalisé que vous vouliez dire une session SSH complètement bloquée.

0 votes

En général, j'attends que le délai soit écoulé. Malgré le fait que je connaisse ces commandes, j'oublie toujours que je peux les utiliser pour accélérer le processus de récupération de mon shell. Notez également la réponse de @Gilles, il se peut que vous deviez appuyer une fois sur Enter/Return avant de lancer la commande. ~. Vous pouvez en savoir plus dans le Page de manuel SSH (un peu plus de la moitié), et en tapant : ~? dans une session SSH active/connectée, là encore, il se peut que vous deviez appuyer sur la touche Entrée une fois auparavant.

4voto

Adam Krawczyk Points 41

Selon la documentation :

 Supported escape sequences:
 ~.   - terminate connection (and any multiplexed sessions)
 ~B   - send a BREAK to the remote system
 ~C   - open a command line
 ~R   - request rekey
 ~V/v - decrease/increase verbosity (LogLevel)
 ~^Z  - suspend ssh
 ~#   - list forwarded connections
 ~&   - background ssh (when waiting for connections to terminate)
 ~?   - this message
 ~~   - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

0 votes

C'est de la commande ~? il suffit de copier-coller

1voto

Hannu Points 11

~. fonctionne, bien qu'il semble être totalement bloqué, arrête la connexion ssh et vous pouvez la relancer, mais sur mon clavier je dois appuyer sur Alt+~ puis espace et enfin .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X