Parfois, ma session ssh dans le terminal se bloque. Comment puis-je quitter la session ssh et me reconnecter ?
Je ne sais pas pourquoi il n'est pas demandé sur StackExcnage Unix mais il m'a aidé avec ssh Linix, merci !
Parfois, ma session ssh dans le terminal se bloque. Comment puis-je quitter la session ssh et me reconnecter ?
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.
Je ne sais pas pourquoi il n'est pas demandé sur StackExcnage Unix mais il m'a aidé avec ssh Linix, merci !
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 !
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 :
+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).
L'utilisation du raccourci clavier fonctionne-t-elle sur votre Mac sans tuer le processus de manière fastidieuse ?
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.
@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.
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.
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.)
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.