I accept NO resposibility for damage done by trying the following method.
I heard a rumor long ago, when I was still using 286/386 machines, that keyboard could be completely submerged in water without any damage, short of corrosion by leaving it wet and not drying them properly. The switches in most keyboards are simple touch-switches, which are not harmed by water unless they are activated while they are submerged, meaning you'd still have to have the keyboard plugged into the computer while you submerged it.
I tried this with an old IBM PC/AT keyboard -- keys were sticking like mad, so I tried it -- and it worked! Gave it a good, thorough washing in a tub of regular tap water, and dried it out with a hairdryer set to simply blow air with no heat (I felt the heat could damage something, which is ironic, since I just got my keyboard completely wet). Keyboard functioned normally and perfectly after that.
I don't recommend trying it, but it worked for me. I don't know how the USB ports would factor into this since they're simple electronic devices that should not get wet.
The only time I ever had trouble with some foreign liquid damaging my keyboard was when my parrot decided to relieve himself on my spacebar, and I think his poop has some sort of chemical in it that's extremely corrosive... no amount of cleaning the contacts under the spacebar would make it work again.
You can, of course, simply pop they keys off and get in there with a slightly damp Q-tip and scrub away for hours. It's tedious, but safe and effective.