Чтобы эмулировать устройства, USB-контроллер в вашем компьютере должен поддерживать dual role, т.е. переключаться в OTG-режим.
Вот наиболее полная статья, как это сделать на конкретном устройстве, со ссылками на другие.
В Linux уже есть USB HID-гаджет, достаточно запрограммировать его.
Вот первый попавшийся пример в интернете.
Наиболее универсальный метод — сделать эмулятор на микроконтроллере, эмулирующий клавиатуру с одной стороны и принимающий команды клавиатуры, например, через CDC ACM или HID (чтобы работало без установки драйверов) с другой.