What's the best way to remove moss from asphalt shingles?
Mechanically, just scrape it off, but you will need to do so carefully. A piece of ply wood would do - it will give you a large edge to scrape the maximum amount of moss off, but won't be too sharp which will reduce the chance of it digging into to the shingles. Work down the shingles starting at the fixed edge that way you won't potentially lift them.
You might want to look at why it's forming in the first place. If the shingles are shaded and constantly damp these are ideal moss growing conditions. Prune any overhanging trees and make sure any gutters are clear.
Moss is there for a reason. It grows because there is moisture. Typically overhanging tree limbs and shade are the problem. You want to cut back the branches over the house so that your roof will get sufficient sunlight and airflow to dry out.
Once you do that, a good stiff push broom should be sufficient to scrub off the moss from those shingles.
Check for roof damage. That moisture is a killer. It is possible that you will need to replace shingles, or even the wood underneath. You may also have venting problems, preventing the roof from properly drying out.
Finally, once you ensure that the roof can dry out, and remove the moss which helps to keep it moist, and replace/repair any problems, you can then add zinc strips to the top of your roof to help retard moss from returning. The zinc leaches out gradually with rain, retarding new moss or algae from growing on your shingles.
Nothing will work unless you dry out the roof and keep it dry though.
I've also used the Moss B Gone product, attach it to the hose and spray. This is basically iron and it kills the moss, if you have moisture problems I'd suggest doing it on a warm day so it kills the moss then drys out fast. This has worked out well on the moss in my yard and on the roof, got rid of it in a couple days using the hose, and no ladder needed.