Cerrar la conexión de Telnet con gracia desde el modo de sesión en sí mismo sin ir al indicador de Telnet

16

una conexión telnet normal es así:

telnet localhost 22
Intentando 127.0.0.1 ...
Conectado a localhost.
El carácter de escape es '^]'.
SSH-2.0-OpenSSH_4.2
^]
telnet> cerrar
Conexión cerrada.

Quiero cerrarlo desde la sesión de telnet en sí mismo sin llegar al indicador de telnet presionando. Mi requisito es que si presiono algún carácter de control de la sesión de telnet como CTRL + A, saldrá de la sesión y se cerrará automáticamente. algo como esto:

$ telnet localhost 22
Intentando 127.0.0.1 ...
Conectado a localhost.
El carácter de escape es '^]'.
SSH-2.0-OpenSSH_4.2
^ A
Conexión cerrada.
PS

Probé todas las opciones dadas en la página de manual e intenté hacer algunas pruebas de archivo $ HOME / .telnetrc, pero no pude lograrlo, ya que telnetrc ejecutará todos los comandos escritos en él con el host dado siempre que sea un telnet a ese host. hecho.

¿Alguien puede ayudarme en esto, como cómo se puede lograr?

Kumar Alok
fuente
es tan complicado ... ¿por qué no usas "salir"? es ... más fácil ...
para usar exit también necesito venir a telnet prompt primero. Correcto. mientras que mi requisito es cerrar la conexión para salir del modo de sesión sin llegar a la solicitud de Telnet (es decir, para llegar a la solicitud de Telnet, primero tengo que enviar el carácter de escape y luego puedo cerrar o salir).
Kumar Alok
@ Paul: No te entiendo. ¿podría decirme dónde puedo encontrar la solución?
Kumar Alok
3
¿Puedes explicar por qué uno querría esto? Telnet es solo un programa cliente para conectarse a algún servicio arbitrario en alguna máquina. Si usa el puerto 23, se conecta al servicio telnet y puede finalizar su inicio de sesión exit, pero este es un comando de shell, no un comando telnet. Debe ir al indicador de telnet para finalizar una conexión si el servicio al que se conectó no ofrece un comando para finalizar la conexión. Si desea iniciar sesión en una máquina remota a través de ssh, utilice el sshcomando, no telnet(a menos que desee realizar el cifrado manual).
Benjamin Bannier

Respuestas:

33

No, el telnetcliente (supongo que está preguntando sobre Linux) solo admite un carácter de escape, Ctrl]( ^]).

Si solo está usando telnetpara hacer conexiones TCP arbitrarias, considere usar netcato en su socatlugar; estos se pueden interrumpir simplemente presionando CtrlC.

usuario1686
fuente
99
Para los seguidores, mantenga presionada la tecla Ctrl, luego presione la tecla "corchete derecho", luego presione Intro. Responderá con un mensaje como telnet>y puede escribir quity presionar enter para salir de su sesión. ¡Uf!
rogerdpack
@rogerdpack Gracias. Esa es la forma de salir en OSX.
chhantyal
¿Qué sucede si estoy usando una configuración regional donde la distribución del teclado tiene el corchete correcto debajo de alt- <alguna otra tecla>? ctrl-alt- <la otra tecla> no funciona.
user628418
Luego cambia la distribución del teclado, o usa un teclado en pantalla ...
user1686
-4

¿Qué pasa con el buen viejo CTRL+ D, también conocido como EOF?

kdo
fuente
1
funcionaría solo si se maneja en el lado del servidor de la sesión. Lo cual no es cierto en general (y tampoco es cierto en la mencionada conexión ssh de 22 puertos).
Andrey Regentov