I was in a similar situation and didn't want to use synergy because I was already running synergy on the computers I wanted to send the keyboard to and don't have X running on the host. I found uinput-mapper to be the perfect solution for my case.
Github:
https://github.com/MerlijnWajer/uinput-mapper
How-to:
http://blog.pi3g.com/2014/03/uinput-mapper-redirecting-keyboard-and-mouse-to-any-linux-system-using-a-raspberry-pi/
I used netcat instead of SSH since I'm not too worried about security on my LAN and it seems to intercept the keyboard before you can type your password. Must be run as root or more ideally just have privilege to mess with input devices.
On the computer in need of a keyboard:
# nc -l -p 7005|./input-create
Then on the computer with the keyboard:
# ./input-read -G /dev/input/eventX -D|nc 192.168.1.122 7005
(where eventX is your keyboard and 192.X.X.X is the computer you're sending the keyboard to)
It's had no speed issues and all the keys work correctly. I believe it works with mice too but I didn't have a need to use that.