Personally, I use Arrow Keys for directions, Left Shift for B, and Z for A. I would use Z and X, but my laptop has a low number of allowed simultaneous key presses. Left Shift is exempt from that. My keystroke limit is so bad, I can't do sliding crouches in SMB1 without mapping B to Left Shift.
The best key mapping is a button that lets the users configure the keys. That way everyone's happy. LoopyNES had a good user interface for the key mapper, it just asked you to press each button, and that's good enough. No textboxes to click on and type into, nothing like that. Just make them press all 8 buttons, and clearly display which one you're asking for.