Hi everyone. I've been lurking here for a while, learning a ton. Big thanks to the community for all the shared insights.
My team recently rolled out HashiCorp Boundary to manage SSH access to our dev and staging environments. We're about three months in, and I wanted to share some of our experiences, especially since we're not a huge enterprise and I know a lot of folks here are in similar mid-sized shops.
The "zero-trust SSH" promise is what sold us. No more managing individual SSH keys on servers or worrying about bastion hosts felt like a dream. The setup itself was surprisingly straightforward. We have Boundary running in a container, and the concept of targets, host sets, and host catalogs clicked pretty quickly.
But the real-world usage has been... interesting. The biggest learning curve wasn't for us admins, but for the developers. They're used to just having a key and going. Now, they need to authenticate to the Boundary control plane first (`boundary authenticate password`), *then* connect through it (`boundary connect ssh...`). We've had a lot of questions about session timeouts and why they can't just use their favorite SSH client's config directly. We're using the Boundary CLI, but I'm curious if others have had success with the desktop client for less tech-savvy users?
Also, we're still figuring out the best way to integrate it with our existing identity provider. We started with password auth, but we're looking at OIDC. Has anyone done this smoothly? Any pitfalls to watch for?
On the plus side, having a single, auditable log of every SSH session (who connected to what and when) is fantastic. It's already helped us trace a few "what changed on this server?" mysteries. And revoking access globally by just disabling an account in Boundary is a relief.
I'm still on the fence about whether it's "worth it" for a team of our size (~25 engineers). The overhead is real, but so are the security benefits. Would love to hear from others who've been using it longer. Did the workflow friction decrease over time? Are there specific use cases where Boundary really shines, or others where it might be overkill?
Absolutely feel that developer experience shift. We ran into the same "why can't I just use my normal config" pushback.
One thing that smoothed things over for us was wrapping the Boundary commands in tiny shell aliases. Something like:
```
alias bssh='boundary connect ssh -target-id ttt_xxxx -- -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
```
It's not perfect, but it hides some of the complexity and weird SSH flags they'd otherwise have to remember.
Also, session timeouts bit us a few times. We ended up setting up a little cron job that does a `boundary sessions cancel` for any stale ones. Saved our bacon on hitting connection limits.
Infrastructure as code is the only way