right, are you using the command line, or blueman?
when pairing from the command line you have to declare the agent capability, like so:
# bluetoothctl
[NEW] Controller 00:10:20:30:40:50 pi [default]
[bluetooth]# agent KeyboardOnly
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
You should then be able to initiate the pairing which will include a pairing request with code.
... I can't say I had the most fantastic start with bluetooth on the Pi either, and ran into a myriad of troubles. I read and re-read the Arch wiki until I was Bluez in the face, and got most of what I needed out of it, eventually.
That said, I honestly strongly recommend installing Blueman 2.0.3, it's not perfect but will simplify a lot of tasks that should really be simpler but aren't :(
This is in fact why I went to great length assembling a script that pulls the debian Jessie backport, as I can't be bothered to figure out how to pair a mouse or keyboard using the cli when I need it done. Same for OBEX 2-way exchange.