Recientemente comencé a alquilar espacio en un servidor remoto para poder trabajar en un proyecto. Descubrí que una forma relativamente indolora de acceder a ella en una máquina con Windows es a través de PuTTY. Sin embargo, hay una cosa que siempre me ha molestado cuando lo uso: aparentemente no hay razón para que a veces se inserten caracteres aleatorios en el cursor.
La mayoría de las veces es solo una tilde, pero rara vez escupe lo que parece una secuencia de escape ([[^ 8 o similar). Solo ocurrirá cuando esté enfocado en la ventana, ya sea que esté escribiendo o a 20 pies del teclado. Si se deja el tiempo suficiente, escupirá tildes a intervalos aleatorios (el promedio es de aproximadamente 1 minuto).
Finalmente, este comportamiento parece ser inconsistente cuando se ejecutan programas como nano o la interfaz mysql: en nano, en lugar de insertar tildes, establecerá marcas (ctrl- ^); en mysql, las líneas se volverán no editables.
Mi pregunta es esta: ¿Alguien más ha experimentado este tipo de comportamiento en PuTTY? Y si es así, ¿qué se puede hacer para prevenir / corregir este comportamiento?
Respuestas:
Tuve el mismo problema con PuTTY y descubrí que estaba siendo causado por una aplicación que he llamado "cafeína", que presiona la tecla F13 cada minuto para detener la activación del protector de pantalla (las políticas grupales me impiden cambiar el tiempo de espera del protector de pantalla en mi maquina) Deshabilitar la aplicación me resolvió el problema.
fuente
Si prefiere tener Masilla y Cafeína en funcionamiento, siga estos pasos:
F15
Ctrl+V
(Esto es necesario para obtener el código especial para la tecla. Por ejemplo, intenteCtrl+V
seguido deF12
)F15
es^[[28~
, donde^[
es de escape). Dejar de cafeína~
~/.inputrc
(crear un nuevo archivo si no existe)"\e[28~":""
~
cuando se usa la terminal Putty con ese servidor Linuxfuente
He encontrado shreyansp solución 's para ser la mayoría (pero no del todo) una satisfactoria :)
Aquí está mi intento de mejorar la que (por supuesto tu caso es distinto). Espero que esto sea de utilidad para aquellos que buscan una solución :)
Mi solución se comporta de la siguiente manera:
TL; DR: mi solución se aplica entre los pasos 2 y 3 (ver más abajo) con el
-key:0E
parámetro cafeína:Salga de la cafeína y reiníciela con:
caffeine.exe 5 -key:0E
(para una prueba fácil)caffeine.exe 50 -key:0E
(para un protector de pantalla obligatorio configurado en 1 minuto)read
programa en el host remoto y observe cómo no se reciben pulsaciones de teclas cada 5 o 50 segundos.read
conCtrl+C
Shreyansp propuso una solución donde se aplicaría una solución entre los pasos 5 y 10 (ver más abajo).
El efecto secundario de eso (en mi configuración) fue que, con cada pulsación de tecla, esa masilla se reenvía de cafeína al host remoto:
que normalmente desearía, pero solo cuando yo (el humano) presiono la tecla pero no regularmente con cafeína :)
'"\e[28~"'
a'""'
(¿tecla en blanco?) causó que la interacción de sesión remota se bloqueara durante varios segundosPara probar fácilmente lo anterior, salga de Caffeine y reinícielo con un intervalo de 5 segundos y el código de clave virtual 07:
caffeine.exe 5 -key:07
read
programa en el host remoto y observe cómo se reciben las pulsaciones de teclas cada 5 o 50 segundos.read
conCtrl+C
La 'tubería' de pulsación de teclas, según tengo entendido:
$TERM=xterm
,vt100
,vt102
,vt220
, etc.) traduce desde el 'protocolo de línea' en códigos de clave.~/.inputrc
~/.bashrc
(basado en el comando de enlace incorporado)screen
programa (que incluye un$TERM=screen
para el paso 5. y vuelve a los bucles en los pasos 6. al 10.)Nota: Una vez que llega al paso 4., se hace muy difícil controlar con precisión las diferentes capas de 'traducciones' / 'mapeos'. Recomendaría evitar eso si puedes.
Antecedentes:
Utilicé
caffeine.exe -key:07
durante años antes de tener que lidiar con un pfsense 2.3.3-RELEASE-p1 (basado en FreeBSD 10.3-RELEASE).Luego,
caffeine.exe -key:07
fue recibido en el otro lado como^[[28~
... que parece estar asignado aCtrl+^
(Establecer marca) en Nano.Esto fue bastante molesto (imagina a alguien presionando y manteniendo presionada la tecla Mayús mientras mueves el texto en el Bloc de notas).
Anteriormente, hice numerosas personalizaciones en masilla Ajustes,
~/.tcshrc
,~/.inputrc
,~/.bashrc
,~/.nanorc
,~/.screenrc
para conseguir lo que considero funcionalidad básica (Backspace
,Delete
,Home
,End
,PgUp
,PgDown
,Ctrl+Left
,Ctrl+Right
, teclado numérico0-9
, teclado numérico./*-+
) que trabajan consistentemente entre bash / nano / pantalla.Una vez que descubrí este
caffeine.exe -key:07
'error', no quise volver sobre eso otra vez :)Probado en:
Windows 8.1 64-bit Enterprise (6.3.9600) / Putty 0.66 / pfsense 2.3.3-RELEASE-p1 (basado en FreeBSD 10.3-RELEASE) / bash 4.4.12-release / nano 2.7.3 / screen 4.04. 00
Referencias
Cafeína:
Undefined
código que funcione para su configuración)Readline / inputrc / bash / bashrc / (builtin) enlace:
Masilla:
fuente
Esto realmente parece una secuencia de escape, o un personaje de control, lo que podría explicar por qué no lo ves en otros programas como el bloc de notas.
No estoy muy seguro de qué teclas hay que presionar para obtener esta salida, pero jugaré un poco e intentaré averiguarlo. ¿Puedes nombrar alguna otra secuencia mostrada? El comportamiento de mysql y nano podría ser otra interpretación de las secuencias de escape que parecen ser ingresadas.
Finalmente, la pregunta es qué causa estas entradas clave. ¿Usa, por casualidad, una computadora portátil que, por ejemplo, controla automáticamente la luz de fondo utilizando algún software propietario? He visto algún software preinstalado extraño que emula las pulsaciones de teclas en lugar de usar la API. Es posible que desee utilizar algo como inputlog en usted mismo.
fuente
~
(y escuchar un pitido) cuando realmente\e[3~
se envía algo como .~
sería no indican una secuencia de escape.)Uso la opción -key: 07 en la línea de comandos para iniciar cafeína. Parece detener el problema de Putty.
Solo pon esto en un archivo bat
caffeine.exe -key: 07
fuente
caffeine.exe -key:0E
(ver mi respuesta a continuación). Parece funcionar bien con Windows (8.1 64 bits) y Putty felizmente lo ignora :)Alguien en los foros de Cisco sugiere cambiar el parámetro de velocidad de la consola para resolver este problema.
http://www.dslreports.com/forum/r27090677-HELP-Cisco-1800-garbled-output-in-putty
¿Definitivamente has probado todas las variaciones de la velocidad de la consola en Putty como se menciona en 1 ?
Nota: Si la velocidad en baudios es diferente a la velocidad predeterminada, se verán caracteres impares en la CLI. Verifique la tabla 1 para establecer velocidades en baudios para diferentes valores de Confreg.
fuente
También tuve el mismo problema y descubrí que caffeine.exe era el problema. Al principio pensé que no podía ser causado por caffeine.exe porque estaba usando esto por más de 2 años en mi vieja computadora portátil. Intenté cambiar caffeine.exe -useshift en su lugar, pero eso envió ^ C. Encontré otro programa, Mouse Jiggler, que mantiene el protector de pantalla alejado pero ya no envía ninguna secuencia de escape en mis sesiones de Putty.
fuente
La mejor solución es configurar los ajustes en su sesión de masilla para que Caffine no interfiera con ella.
En Putty en Terminal Keyboard, elija la opción SCO. En Putty bajo Terminal Bell, cambie la acción a None (para apagar el timbre).
Caffine seguirá haciendo lo suyo y no molestará su sesión de masilla. (No uso las teclas Fn durante una sesión de masilla, así que no sé qué sucede si quieres usar las teclas Fn).
fuente
2017-09-20: resolvió la inyección de carbón iniciando cafeína con «caffeine.exe -useshift -noicon» en el programador de tareas activado al iniciar sesión. Sin icono, no más caracteres inyectados en mis sesiones de mintty / bash. Eso fue muy molesto. Gracias a todos por sus pistas.
fuente