Bast.sh/SSH into cloud VMs and sandboxes
SSH into cloud VMs and sandboxes
Cloud consoles and one-off CLI copy-paste are fine until you have dozens of hosts. Bast imports live inventory from GCP, AWS, Azure, Boat, Upstash Box, Vercel Sandbox, Hetzner Cloud, BitQate, Railway, Fly.io, and DigitalOcean, then connects from the picker.
Cloud inventory goes stale the moment you bookmark it
Teams keep EC2 and GCE hosts in notes, SSH config stubs, or GUI session lists. Instances get replaced. Private IPs change. Bastion paths evolve. The bookmark stays wrong.
Provider consoles can open a session, but they do not organize the fleet the way a terminal-first engineer actually works.
Provider CLIs and APIs in, OpenSSH out
Bast sync pulls hosts through gcloud, AWS CLI v2, Azure CLI, the Boat boat CLI, flyctl, and doctl, or through the Upstash Box, Vercel Sandbox, Hetzner Cloud, BitQate, and Railway APIs. Synced hosts are read-only reflections of cloud inventory. When sync runs again, the list updates instead of rotting.
Cloud VMs still use your system ssh binary. Vercel Sandboxes open a PTY shell instead, because they are not OpenSSH hosts.
Import a cloud account
- Authenticate the provider CLI on your machine (
gcloud,aws,az,boat,flyctl, ordoctl), or store a token withbast upstash key,bast vercel token,bast hetzner key,bast bitqate key, orbast railway key. Fly.io and DigitalOcean do not store an API token in Bast. - Run
bast syncforgcp,aws,azure,boat,upstash,vercel,hetzner,bitqate,railway,fly, ordigitalocean(or use the Sync tab in the TUI).bast sync dois an alias ofbast sync digitalocean. - Open Bast, find the imported hosts, and connect. Provider notes: GCP, AWS, Azure, Boat, Upstash Box, Vercel Sandbox, Hetzner Cloud, BitQate, Railway, Fly.io, DigitalOcean.
Keep cloud credentials out of your SSH client
Bast writes local OpenSSH config for imported hosts. GCP, AWS, Azure, Boat, Fly.io, and DigitalOcean authenticate through their CLIs. Fly.io and DigitalOcean do not store an API token. Upstash Box, Vercel, Hetzner Cloud, BitQate, and Railway store tokens in local 0600 files, not in SSH config or Vault. Vercel connect is a WebSocket PTY rather than OpenSSH.
Install Bast
macOS, Linux, and Windows 11. Then run bast and work from your existing OpenSSH setup.
curl -fsSL https://bast.sh/install | shLatest release v0.11.0