Hi… The last time I tried a really stripped-down build, it turned out to be necessary to include a placebo /etc/passwd, which I think hallpass, the built-in SSH daemon, was using to determine which shell to run.
(And you would also need that /bin/bash or the like in your image, plus any helper utilities.)
Another possibility is to temporarily attach the volume to a more full-featured image. It’s counter-intuitive, but the Machines themselves are considered (mostly) disposable,
. So, you would actually destroy the existing Machine, use fly m run --volume to get a temporary one, and then recreate the old Machine afterward.
These days, there’s also the possibility of a multi-container Machine. In your situation, that would mean that you would have a sidecar container which existed solely to be your Bash environment. Last I checked, all such containers had equal access to the persistent volume.
(And, of course, you could boot with and without that sidecar by tweaking fly.toml, as opposed to rebuilding the main image all the time.)
Hope this helps!