Skip to content

Repository files navigation

Burrow

Modern SSH Tunnel Management

License Java Build

A modern, secure SSH tunnel manager with a clean Swing GUI.

Build, manage and auto-reconnect local, remote and dynamic port forwarding tunnels through an intuitive desktop interface.


Features

Feature Description
Port Forwarding Local, remote and dynamic (SOCKS) tunneling
Auto-Reconnect Resilient reconnection with exponential backoff
Secure Credentials AES-GCM encryption with a persisted, owner-only key file
YAML Configuration Human-readable, declarative config
Modern GUI FlatLaf theming with dark & light modes
Identity Management Reusable SSH identities with password or key authentication

Quick Start

# 1. Clone
git clone https://github.com/mjoe/burrow.git
cd burrow

# 2. Build (uses Maven Wrapper - no manual Maven install needed)
./mvnw clean package

# 3. Run
./burrow.sh          # macOS / Linux
burrow.bat           # Windows

Requirements

The bundled Maven Wrapper (./mvnw) downloads the required Maven version automatically. You only need a system Maven if you prefer using mvn directly.

Configuration

Burrow reads its configuration from ~/.burrow/config.yaml. You can also load a file at runtime via the GUI (File → Load Configuration).

identities:
  - id: id-1
    alias: My Server
    username: admin
    keyFile: /home/user/.ssh/id_ed25519

connections:
  - id: conn-1
    alias: Home Server
    host: home.example.com
    port: 22
    identityId: id-1
    autoStart: true
    autoReconnect: true

forwards:
  - id: fwd-1
    type: local
    alias: Web App
    connectionId: conn-1
    localHost: 127.0.0.1
    localPort: 8080
    remoteHost: 127.0.0.1
    remotePort: 80

Note: Stored passwords are encrypted with an AES key persisted at ~/.burrow/secret.key (owner-only permissions). Never share this file — without it, stored passwords cannot be decrypted.

Architecture

Burrow is a multi-module Maven project:

Module Responsibility
burrow-core Domain models, SSH logic, configuration, security
burrow-gui Swing desktop application

Design principles:

  • Immutable records with builder patterns for type-safe models
  • Sealed hierarchies for well-defined port-forwarding types
  • Core logic cleanly separated from the GUI layer
  • Secure credentials by default, never hardcoded keys

Releases

Burrow uses two-position versioning (Major.Minor, e.g. 1.0, 1.1). Releases are published as GitHub Releases with a pre-built runnable fat-JAR.

To cut a release, push a tag (the CI builds the jar and creates the release automatically):

git tag v1.0
git push origin v1.0

Contributing

Contributions are welcome! Please read CONTRIBUTING.md before submitting issues or pull requests.

License

Apache License, Version 2.0

Credits

About

A modern SSH tunnel management tool

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages