talk about a "robbing Peter to pay Paul" problem. I'd been struggling for hours to figure out why my ssh was killing my something|while read loop.
Another way to stick with a while read loop and keep your ssh at the same time is to use the "-n" switch to make STDIN on ssh /dev/null. Works like a charm for me:
#!/bin/bash
[...]
something|while read host
do
ssh -nx ${host} fiddleAround
done
(I tend to always use the "-x" too to avoid wasting time negotiating X in a tunnel.)