v0.60.0

netbirdio/netbirdv0.60.0Nov 18, 2025by shuuri-labs

AI Summary

A major feature release introducing a complete rewrite of SSH access, enabling built-in SSH servers on all peers with JWT authentication and full OpenSSH compatibility.

Key Highlights

  • Native SSH Access & OpenSSH Integration
  • Built-in SSH server on every peer
  • Identity-aware access with JWT authentication
  • Port 22022 redirection (transparently securing port 22)
  • Advanced SSH features (SFTP, port forwarding, root login)

Breaking Changes

  • Server port changed from 44338 to 22022
  • Authentication moved from machine public keys to JWT-based user identity
  • Implicit firewall rules removed; explicit ACL required for port 22022

New Features

  • Native SSH server on every peer
  • JWT authentication for SSH
  • OpenSSH integration
  • SSH advanced features (SFTP, forwarding, root)
  • Port 22022 redirection
  • Client login UX improvement
  • Fixed port range firewall rules

Full Release Notes

### What's New

**Native SSH Access & OpenSSH Integration**

NetBird v0.60.0 ships a complete rewrite of SSH access. Every peer can now run a built-in SSH server, giving you identity-aware, private SSH access over your NetBird network — using either the `netbird ssh` command or your existing OpenSSH clients.

**Highlights**

- **Built-in SSH server on every peer** - Enable with `netbird up --allow-server-ssh` and get a native SSH endpoint without exposing port 22 to the internet.

- **Identity-aware access with JWT** - SSH sessions are authenticated via your IdP (OIDC/JWT) by default, so you know _which user_ accessed _which machine_.

- **Works with `netbird ssh` and OpenSSH** - Use `netbird ssh user@<peer-ip>` or standard `ssh`, `sftp`, and `scp` commands; NetBird configures OpenSSH automatically via a drop-in `99-netbird.conf`.

- **Port 22, transparently secured** - NetBird listens on TCP 22022 and redirects NetBird-network port 22 traffic to it, so existing SSH workflows keep working without changing ports.

- **Advanced features when you need them** - Optional SFTP, local and remote port forwarding, root login, and JWT token caching (`--ssh-jwt-cache-ttl`) for fewer auth prompts.

- **Machine identity mode (legacy behavior)** - Prefer host-based trust? Disable JWT auth with `--disable-ssh-auth` and rely purely on network-level ACLs.


**How it works**

1. **Enable the SSH server on the target peer**

```bash
netbird down  # if already running
netbird up --allow-server-ssh
```

Add optional flags for SFTP, port forwarding, or root login as needed:

```bash
netbird up --allow-server-ssh \
  --enable-ssh-local-port-forwarding \
  --enable-ssh-remote-port-forwarding \
  --enable-ssh-sftp \
  --enable-ssh-root
```

2. **Create an ACL policy for SSH**  
	Allow TCP port **22022** from your SSH client peers/groups to your SSH server peers/groups in **Access Control**.

3. **Enable SSH in the Dashboard**  
	Open the target peer → enable **SSH Access**.

4. **Connect via CLI or OpenSSH**

- NetBird CLI:

```bash
netbird ssh user@100.119.230.104
```

- OpenSSH:

```bash
ssh user@100.119.230.104
sftp user@100.119.230.104
scp file.txt user@100.119.230.104:/path
```

📖 Read more in the SSH documentation: https://docs.netbird.io/how-to/ssh

---
#### Client Improvements

- Updated the ****client login success page**** with an improved user experience.
  [#4797](https://github.com/netbirdio/netbird/pull/4797)
- Reverted deprecated ****gRPC client code migration**** to restore expected behavior.
  [#4805](https://github.com/netbirdio/netbird/pull/4805)

---
#### Management Improvements

- Fixed handling of ****port ranges in route firewall rules**** to ensure accurate rule application.
  [#4801](https://github.com/netbirdio/netbird/pull/4801)

---
#### Upgrade & Compatibility Notes

- ⚠️ NetBird SSH in **v0.60.0 is a breaking change**:
    - Server port changed from **44338 → 22022**
    - Authentication moved from machine public keys to **JWT-based user identity**
    - Implicit firewall rules were removed - you now need an explicit ACL for port **22022**
    
- ⚠️ **Version compatibility:** v0.60.0+ SSH is **not backward compatible** with older peers.  
    For self-hosted environments, we recommend updating in this order:
    1. Management server
    2. Dashboard (for browser SSH, if used)
    3. **SSH servers first** (peers with `--allow-server-ssh`)
    4. SSH clients last (`netbird ssh` users)

**Full Changelog**: [v0.59.13...v0.60.0](https://github.com/netbirdio/netbird/compare/v0.59.13...v0.60.0)