You can throw 4 coins and reject values outside [1, 6], although there's the (unlikely) chance that you could get an very long set of 7s (this is mostly worrying if throwing your fair coin is expensive, as getting good random numbers sometimes is).
Another is to use a scaling algorithm, that takes into account an answer of [7,8] as if it was another coin flipping.
There is a very detailed explanation at http://mathforum.org/library/drmath/view/65653.html, including the algorithm (its NextBit()
would be flipping your fair coin).
The case for throwing a dice with a fair coin (sampling 2 → 6) is easier than the generic algorithm. You just take a failure (7 or 8) as another coin input and perform three more flippings.