Linux: comparta teclado a través de la red


12

Como sugiere el título, quiero usar un teclado remoto localmente. El teclado remoto debe poder usarse en un TTY y, si es posible, también en el X-Server. ¿Hay controladores (módulos del núcleo) que emulen un teclado "falso" con transparencia de red?

Respuestas:


16

Lo descubrí por mi cuenta.

Primero asegúrese de haber cargado el módulo evdev kernel en ambas máquinas.

En la máquina remota que ejecuta:

$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444

Y en el cliente:

$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

(Nota: si está usando netcat de netcat-openbsd, por ejemplo en Ubuntu o Fedora, no use '-p')

Funciona perfectamente sin importar si estoy en un TTY o en X.org. ¡Y funciona sin demora!

Lamentablemente, todas las teclas también se escriben en la máquina remota. ¿Hay alguna forma de desactivarlos temporalmente mientras se está ejecutando nc? Pensé en algo como ejecutar "cat -" en la máquina remota, pero un Ctrl-C lo haría terminar, por supuesto.


2
Tuve mejor suerte con nc -l 4444, sin el -p. Según man nc, -pestá explícitamente prohibido en combinación con -l. De lo contrario, esta es una solución fantástica y justo lo que necesitaba :)
Magnus Hoff

1
Le recomiendo que lo use a través de una conexión segura o local (aunque eso tampoco es realmente seguro). Hay snetcat, ('netcat seguro') que puede funcionar si importa un certificado (vaya, google :-). Además, acepte su solución, esta pregunta todavía está "abierta".
pruzinat

¡sería mejor si admite copiar y pegar!
Chenming Zhang

¡Una solución asombrosa! Estoy impresionado de que hayas logrado resolver esto. ¿Encontró una solución para deshabilitar la salida en una máquina mientras se ejecuta en la otra?
Cestariano

7

Synergy compartirá un teclado a través de la red entre múltiples máquinas. Si no hace directamente lo que quieres, estoy seguro de que hay un código que te facilitará la configuración.


Synergy + es una 'bifurcación' de sinergia que aún se mantiene para corregir errores. Además, la sinergia rápida está disponible en algunos repositorios de paquetes de Debian y proporciona un contenedor GUI para la sinergia.
Josías el

3
En realidad, Synergy depende del servidor X. Sin embargo, necesito una solución que funcione en un TTY. Si supiera cómo emular las pulsaciones de teclas en un TTY, trataría de escribir una pequeña aplicación yo mismo. Lamentablemente, no pude encontrar nada valioso en Google. Tal vez alguien me puede dar algunas pistas?
timn

5

Echa un vistazo a Synergy .

Synergy es un software gratuito y de código abierto que le permite compartir fácilmente su mouse y teclado entre múltiples computadoras, donde cada computadora tiene su propia pantalla. No se requiere hardware especial, todo lo que necesita es una red de área local. Synergy es compatible con Windows, Mac OS X y Linux. Redirigir el mouse y el teclado es tan simple como mover el mouse del borde de la pantalla.

Sinergia


0

La sugerencia anterior de usar nc (netcat) no funciona para mí.

Puedo abrir la secuencia de entrada con este comando:

nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

Me niegan el permiso, incluso si lo hago como sudo. La máquina de destino tiene una instalación de Linux realmente antigua, por lo que quizás los archivos del dispositivo / dev / input eran de solo lectura en el pasado.

Sin embargo, pude resolver este problema usando x2x, y el resultado es muy fácil de usar.

Debe hacer "xhost +" en la máquina de destino y también usar gdmsetup para habilitar las conexiones remotas (esto elimina el indicador -nolisten para X la próxima vez que gdm inicie una sesión X).

Después de eso, su servidor x está abierto para conexiones remotas, y x2x puede conectarse desde la máquina fuente (teclado)

x2x -to 192.168.1.3:0

Lo bueno de x2x es que le da una pequeña ventana de control en la máquina fuente, y los eventos del teclado solo se envían al destino cuando esa ventana está enfocada. Esta es una forma muy práctica de hacerlo (estoy escribiendo esta respuesta desde la máquina de origen en este momento, y no se presionan teclas extraviadas en la máquina de destino, porque tengo la ventana de control desenfocada). Además, al hacer clic en el centro de la ventana de control, también se reenvían los eventos del mouse, y al hacer clic con 2 botones se finaliza el envío de eventos del mouse. Además, cuando habilita el reenvío del mouse con un clic en la ventana de control, TODOS los eventos del teclado se envían al destino y ninguno a la fuente. Por lo tanto, ALT-TAB se envía al objetivo sin desenfocar la ventana de control en la máquina fuente.

Tengo escritorios virtuales habilitados en la máquina de origen, por lo que solo pego la ventana de control x2x en un escritorio distante y solo voy allí cuando necesito controlar la máquina de destino.

Esta versión de la solución está en el nivel X, donde la respuesta anterior está en el nivel del dispositivo Linux. Por supuesto, esto no funcionará en absoluto si no está ejecutando X tanto en el destino como en la fuente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.