¿Cómo salgo de una conexión SSH?
Dos caminos:
- cerrar la sesión de shell, por ejemplo,
exit
seguido de Enter, o Ctrl- dgeneralmente le permite salir de la ssh
sesión normalmente,
- en el caso de que tenga una mala conexión y el shell no responda, presione la Entertecla, luego escriba
~.
y ssh debería cerrarse inmediatamente y regresarlo a su símbolo del sistema.
La primera opción debe ser intuitiva, pero ¿cómo sabemos la última opción?
Podríamos aprender esta información de una lectura cuidadosa de la página del manual.
$ man ssh
nos proporciona la documentación de SSH , que tiene la siguiente sección sobre caracteres de escape:
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.
Respuesta corta: tipo
exit
Si eso no funciona, sin embargo ...
Carácter de escape SSH y secuencia de desconexión
La mayoría de las implementaciones de SSH implementan un carácter de escape para sesiones interactivas, similar a la
Ctrl-]
combinación de telnet . El carácter de escape SSH predeterminado es~
, ingresado al comienzo de una línea.Si desea finalizar una sesión interactiva de OpenSSH que está atascada y no se puede salir ingresando
exit
o CtrlDen un shell en el lado remoto , puede ingresar~
seguido de un punto.
. Para asegurarse de ingresar el carácter de escape al comienzo de una línea de entrada, primero debe presionar Enter. Entonces, la siguiente secuencia terminará en la mayoría de los casos una sesión SSH:Enter~.
Otras secuencias de escape
OpenSSH, por ejemplo, ofrece otras secuencias de escape además
~.
. Entrar~?
durante una sesión debería darte una lista. Algunos ejemplos:~
seguidoCtrl-Z
suspende la sesión,~&
lo pone directamente en segundo plano,~#
da una lista de conexiones reenviadas en esta sesión.~~
.El carácter de escape se puede cambiar usando la opción de línea de comando
-e
. Si establece el valor especial-e none
, el escape se deshabilita y la sesión es totalmente transparente.Consulte también la página de manual de OpenBSD en ssh (a la que se hace referencia desde www.openssh.org ) en la
-e
opción de línea de comandofuente
exit
oCtrl-D
, sino solo un proceso de escucha. Dije claramente que mi solución es adecuada para una sesión que está atascada y no se puede salir . Traté de aclarar esto más, espero que sea más fácil de ver ahora.~.
sin espacios era exactamente lo que necesitaba, ¡gracias! :)¿Quieres salir del shell SSH?
Puede escribir
exit
y presionar Enter, o usar Ctrl+Dfuente
Simplemente escriba
exit
ologout
(luego presione Intro, por supuesto) ambos funcionarán.fuente
Estos son los personajes compatibles que proporcionan varias opciones con las que puedes jugar con ssh.
Secuencias de escape compatibles:
(Tenga en cuenta que los escapes se reconocen solo inmediatamente después de una nueva línea). Puede cerrar la lista de secuencias de escape presionando Enter.
fuente
Puede escribir
logout
en la línea de la consola (y presionar, Enterpor supuesto).fuente
MacOS : cuando ssh se cuelga, use la siguiente secuencia:
donde: shift + ` produce ~ (carácter tilde)
fuente