Trying to do this for USB in general is probably unwise - quite tricky, and far more complicated than necessary to accomplish your stated goal.
You'd be better off coming up with a custom scheme for transmitting keyboard data, and then turning it back into USB in a dongle that connects to the PC. (You could of course buy an off-the-shelf wireless keyboard, unless that is out for reasons of reliability, interference, or security).
It would be easiest to build the project if you get a legacy PS/2 interface keyboard as that synchronous interface can be managed from just about any microcontroller. However you can also host a USB keyboard from an MCU - I've had some luck with the KL25Z series on custom PCBs as well as that version of the Kinetis "freedom board", and also with STM32F4's on custom and Nucleo boards. While I was not able to get a K20 series MCU host my specific non-keyboard peripheral of interest, I think the tentative host mode code for that on the Teenys3.x boards may support keyboards.
For the intermediate link you probably want an asynchronous serial scheme. If you need true bidirectional communication (want to activate those keyboard LEDs?) you could consider something like typical RS845 half-duplex protocols, only with single ended signalling.
On the PC dongle end you can pick any handy micro with a USB device interface. Personally I might pick the same one I used on the transmit end, as most embedded USB hosts can also be a device. I did a KL25Z board that can be either role - install a female USB connector on the top of the board and program it as a host, or flip it over and install the male connector on that side with the device mode firmware.