A cosy terminal UI for managing Azure Bastion SSH tunnels to your VMs.
Features • Running the Application • Usage
- Remember your VMs in a simple config file
- Create SSH tunnels through Azure Bastion with a few keystrokes
- Automatic SSH certificate validation and renewal
- Clean, minimal terminal interface that doesn't get in your way
Star ⭐ this repository if you find it useful!
Note
You will need to the Azure CLI installed and be logged in to your account with a valid subscription selected. You will also need to have intialised the certificate using something like: az ssh cert --file .ssh/az_ssh_config/azure-bastion-vm/id_rsa.pub-aadcert.pub --public-key-file .ssh/az_ssh_config/azure-bastion-vm/id_rsa.pub
Download the latest release and put it in a folder you want. Then from the folder you use ./az-burrow (Windows: .\az-burrow).
If you are on nix and use the command, you can run it using the included flake.nix.
nix run "github:hegde-atri/az-burrow"Optionally you can add this to your path to use it from anywhere!
git clone https://github.com/hegde-atri/az-burrow
cd az-burrow
# General build (current platform)
go build -o az-burrow ./cmd/az-burrow
# Linux x86
GOOS=linux GOARCH=amd64 go build -o bin/az-burrow ./cmd/az-burrow
# Windows x86
GOOS=windows GOARCH=amd64 go build -o bin/az-burrow.exe ./cmd/az-burrowCreate a burrow.config.yaml file with your Azure VMs:
machines:
- name: my-vm
resource_group: MY-RG
target_resource_id: /subscriptions/.../virtualMachines/my-vm
bastion_name: my-bastion
bastion_resource_group: BASTION-RG
# Optionally ssh config path
ssh_config_path: ~/.ssh/az_ssh_config/azure-bastion-vmThen just run:
./az-burrowYou can also specify a different config file:
./az-burrow /path/to/my-config.yaml- Go - Because it's simple and compiles to a single binary
- Bubble Tea - For the terminal UI framework
- Azure CLI - For interacting with Azure Bastion
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development is managed with devenv or just have Go v1.25 installed.
devenv shell- Add VM machine config to config file
- Deactivate a tunnel without deleting it
- Automatic certificate renewal
- Preset tunnel configs from config file
- Automatic certificate initialisation
This project is licensed under the AGPL License - see the LICENCE file for details.
If you run into issues or have questions, open an issue on GitHub.

