Eu encontrei um projeto chamado netevent no GitHub, que faz exatamente o que eu precisar. Disponibiliza dispositivos locais para um computador remoto.
Consegui encaminhar o mouse, mas não o teclado, devido a problemas de compatibilidade. Tecnicamente, isso responde à minha pergunta sobre como compartilhar o teclado pela rede e fazer com que ele apareça como um dispositivo separado.