Any acid will work just fine. I've used Phosphoric acid (very fast when heated), Citric acid (good cheap and friendly stuff when you are not in a hurry) and vinegar (works ok, smells nasty).
Phosphoric acid is great stuff because it creates a phosphate layer on the metal surfaces after the rust is gone. This layer offers somewhat ok resistance for rusting and these rarely develope flash rust after the part has been rinsed and dried.
Citric acid can be found from farm stores as a mild citric acid solution is used to cure diarhea on porks. It's also very cheap and you can pour it to the sewer. It's a bit slow to act but heat will increase the "power". Typically roughly one day in citric acid (~5% solution) is good enough for most parts. Just scrub the part once of twice with wire brush during the "treatment". One bigger downside with the citric acid treated parts is the fact that those flash rust quite fast and easily after rinsing with water. One fix for this is to neutralize the parts in a baking powder solution. This seems to help quite a lot with the rust issue.
Vinegar works about the same a citric acid but smell like crap. It also seems to have sligtly worse flash rust behaviour.
So in a short, I like to use phosphoric acid because it creates the phosphate layer on the parts and is not that sensitive to the rinsing. For larger parts I use citric acid because I can make gallons of solution with quite modest costs.