Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
I think the point with the previous code is that you need to at least tell us what you've tried (you should try it yourself you know) and ask about a particular part of it the you are having trouble with instead of just saying "I want to do this" and giving a block of code.
well, maybe your 'unmasking' stuff does not work properly and the keyboard interrupt are blocked at the PIC.
also, make sure you read the byte from I/O 0x60, because the keyboard controller may not send you more interrupts if that byte remains in its internal buffer.
Another error cause would be that another interrupt handler(timer?) do not send an "End Of Interrupt" signal to the PIC (using out 0x20,0x20) and thus the PIC is blocking further IRQs, waiting the CPU to acknowledge the handling of the latter one.