There’s always the cheap way: Memorize the layout and learn to infer location from context.
Most good keyboards designed for touch-typists have ridges on specific keys. On a standard English QWERTY layout these are usually either F/J or D/K. These are where either your index fingers or your middle fingers would land when putting your hands in a ‘normal’ typing position, with the intent being that you can thus ensure that your fingers are in the right place.
By using this and then simply remembering where things are relative to each other (like you should be doing anyway, touch-typing is a huge performance improvement), not being able to see the keys becomes a non-issue unless you’re using a layout you’re not used to.
So, you just ensure all your keyboards have the same layout, and then practice.
All my keyboards have the same layout for this reason. I don’t need to look to know that 8 is two rows up and roughly four fifths of a key-width to the left of K and that I need to hold Shift when I hit it to get a
*. It’s no different from how I know that AltGr + W will give me an
å with the modified US-International keyboard layout that I use regularly, or that Ω on a Greek keyboard layout is in the same place as V on an English layout. This is all stuff that I use regularly, so I don’t need to think about it.
And that’s really the trick. By forcing yourself to use this stuff regularly, you can memorize it to the point that you literally don’t need to think about it, and don’t need to invest in any special tools.