¿Cuál es la diferencia entre ~. (tilde dot) y "salir" al salir de una conexión SSH

12

Cada vez que tengo una conexión X11 de fondo en una sesión SSH, debo usar ~.y no exitsalir de la sesión ssh.

¿Cual es la diferencia aquí? ¿Puedo usar siempre la secuencia de escape ~.?

Hải Phong
fuente

Respuestas:

7

exitle dice a su shell actual que salga. Dado que (cuando no se tiene una conexión de túnel, por ejemplo, X11, activa) eso significa que el proceso que se invocó sshd en el lado del servidor salió, SSH se desconecta.

~. es la secuencia de escape "mágica" que SSH captura y desconecta de inmediato (incluido el túnel X11).

Entonces, no, estos no son intercambiables. Si desea que su shell remoto (o cualquier programa que se esté ejecutando de forma remota) salga correctamente, debe finalizarlo en consecuencia.

Marcus Müller
fuente
5

Ya está bien descrito en la otra respuesta, pero agregaría algunos antecedentes:

La conexión SSH única de hoy puede contener varias sesiones (sus shells, comandos), canales de reenvío TCP y canales de reenvío X11 . Y ahí viene la diferencia:

  • La escritura exit(o Ctrl+ D) desglosa el canal de sesión , pero si hay algunos canales X11 activos (por ejemplo, gvimdeja varias conexiones al portapapeles y título del servidor X , que no está cerrado exit). Escribir exitdejará esta aplicación X11 ejecutándose y su terminal se "colgará" hasta que se cierre.

  • Escribir ~.desgarra toda la conexión . Si ejecuta alguna aplicación X11, puede notar que también está cerrada cuando escribe ~..

Jakuje
fuente