web-dev-qa-db-fra.com

Comment puis-je sortir d'une connexion SSH?

Je me connecte à un serveur via SSH pour envoyer un message à un serveur de socket à l’aide d’une commande telle que:

ssh 181.169.1.2 -p 5566

Une fois la connexion établie, le message écrit et envoyé, je ne peux plus quitter le mode texte. Je suis seulement autorisé à entrer plus de texte et c’est tout.

Existe-t-il une commande ou une combinaison de touches me permettant de revenir en mode commande?

220
Andreea

Comment puis-je sortir d'une connexion SSH?

Deux manières:

  • fermer la session Shell, par exemple avec exit suivi de Enter, ou Ctrl-d vous permet généralement de quitter la session ssh normalement,
  • dans le cas où vous avez une mauvaise connexion et que le shell ne répond pas, appuyez sur le bouton Enter key, tapez ~. et ssh devrait immédiatement se fermer et vous ramener à votre invite de commande.

La première option devrait être intuitive, mais comment connaissons-nous cette dernière option?

Nous pourrions apprendre cette information en lisant attentivement la page de manuel.

$ man ssh

nous donne la documentation SSH , qui contient la section suivante sur les caractères d'échappement:

ESCAPE CHARACTERS
     When a pseudo-terminal has been requested, ssh supports a number of
     functions through the use of an escape character.

     A single tilde character can be sent as ~~ or by following the tilde by
     a character other than those described below.  The escape character
     must always follow a newline to be interpreted as special.  The escape
     character can be changed in configuration files using the EscapeChar
     configuration directive or on the command line by the -e option.

     The supported escapes (assuming the default ‘~’) are:

     ~.      Disconnect.

     ~^Z     Background ssh.

     ~#      List forwarded connections.

     ~&      Background ssh at logout when waiting for forwarded connection
             / X11 sessions to terminate.

     ~?      Display a list of escape characters.

     ~B      Send a BREAK to the remote system (only useful if the peer sup‐
             ports it).

     ~C      Open command line.  Currently this allows the addition of port
             forwardings using the -L, -R and -D options (see above).  It
             also allows the cancellation of existing port-forwardings with
             -KL[bind_address:]port for local, -KR[bind_address:]port for
             remote and -KD[bind_address:]port for dynamic port-forwardings.
             !command allows the user to execute a local command if the
             PermitLocalCommand option is enabled in ssh_config(5).  Basic
             help is available, using the -h option.

     ~R      Request rekeying of the connection (only useful if the peer
             supports it).

     ~V      Decrease the verbosity (LogLevel) when errors are being written
             to stderr.

     ~v      Increase the verbosity (LogLevel) when errors are being written
             to stderr.
131
Aaron Hall

Réponse courte: Tapez exitname__

Si cela ne fonctionne pas, cependant ...

Séquence d'échappement et de déconnexion SSH

La plupart des implémentations SSH implémentent un caractère d'échappement pour les sessions interactives, similaire à la combinaison Ctrl-] de telnet. Le caractère d'échappement SSH par défaut est ~, entré au début d'une ligne.

Si vous souhaitez mettre fin à une session interactive OpenSSH bloquée et impossible à quitter en entrant exitou CtrlD dans un shell du côté distant , vous pouvez entrer ~ suivi d'un point .. Pour être sûr de saisir le caractère d'échappement au début d'une ligne de saisie, vous devez appuyer d'abord sur Entrée. Donc, la séquence suivante mettra généralement fin à une session SSH:

Enter~.

Autres séquences d'échappement

OpenSSH, par exemple, offre d’autres séquences d’échappement que ~.. Entrer ~? au cours d'une session devrait vous donner une liste. Quelques exemples:

  • ~ suivi Ctrl-Z suspend la session,
  • ~& le met directement en arrière-plan,
  • ~# donne une liste des connexions transférées dans cette session.
  • Si vous voulez simplement entrer un tilde au début d'une ligne, vous devez le doubler: ~~.

Le caractère d'échappement peut être modifié à l'aide de l'option -e de la ligne de commande. Si vous définissez la valeur spéciale -e none, l'échappement est désactivé et la session est totalement transparente.

Voir aussi page de manuel OpenBSD sur ssh (qui est référencé à partir de www.openssh.org ) sous l’option -e en ligne de commande

271
Dubu

Voulez-vous quitter le shell SSH?

Vous pouvez taper exit et cliquer sur Enter, Ou utiliser Ctrl+D

Il suffit de taper exit ou logout (puis appuyer sur Entrée bien sûr) les deux fonctionneront.

11
octa

Ce sont les caractères pris en charge qui fournissent diverses options avec lesquelles vous pouvez jouer avec ssh.

Séquences d'échappement prises en charge:

 ~.  - terminate session

 ~B  - send a BREAK to the remote system

 ~R  - Request rekey (SSH protocol 2 only)

 ~#  - list forwarded connections

 ~?  - this message

 ~~  - send the escape character by typing it twice

(Notez que les échappements ne sont reconnus qu’après une nouvelle ligne.) Vous pouvez fermer la liste des séquences d’échappement en appuyant sur Enter.

4
0_o

Vous pouvez écrire logout dans la ligne de la console (et appuyer sur Enter bien sûr).

4
Etienne

MacOS : lorsque ssh se bloque, utilisez la séquence suivante:

ENTER 
SHIFT+`
.

où: shift + `produit ~ (caractère tilde)

2
Kamil Kiełczewski