Respuestas:
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.
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.
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.
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.
nc -l 4444
, sin el-p
. Segúnman nc
,-p
está explícitamente prohibido en combinación con-l
. De lo contrario, esta es una solución fantástica y justo lo que necesitaba :)