A configuration-driven system that turns ESP32, ESP8266, BK72xx and RP2040 microcontrollers into smart devices controlled from Home Assistant and other home automation systems.
shellhub-io/shellhub
Self-hosted or cloud SSH gateway that gives remote access to Linux devices and servers behind NAT and firewalls, with per-user identities.
Open-source alternative to:Teleport
Tailscale SSH
- Stars
- 2,248
- Forks
- 203
- Open issues
- 25
- Last commit
- 12 hours ago
What is it?
ShellHub is a centralized SSH gateway for Linux devices and servers. A small agent on each device dials out to the ShellHub server, so the device needs no public IP or inbound port, whether it is a server, a cloud instance or an embedded device in the field. You then connect through the server using ssh, scp, sftp or a web-based terminal.
Every SSH login is tied to a specific team member rather than to a copied key in authorized_keys. Access policies define which users can reach which devices and as which Linux user, and removing someone from the team ends their access across all devices. Sessions are logged with the user, source IP and device.
The project can be self-hosted with Docker Compose, or used through the hosted ShellHub Cloud. Packages are provided for Yocto, Buildroot, FreeBSD and Snap, and devices can be grouped with tags.
Key features
- 01Works with standard ssh, scp, sftp and port forwarding clients.
- 02Devices connect outward, so no public IP or inbound port is needed.
- 03Per-person SSH identities replace shared keys in authorized_keys.
- 04Default-deny access policies control which users reach which devices.
- 05Session logs record user, source IP and device for each connection.
- 06Web terminal lets you open a shell from the console.
Use cases
- Reaching servers or cloud instances that have no public IP.
- Managing fleets of embedded Linux devices deployed in the field.
- Giving team members audited, revocable SSH access to shared machines.
- Running a self-hosted alternative to a commercial SSH access gateway.
Quick start
- 1
Create a free ShellHub Cloud account, or self-host (step 2 onward)
- 2
Clone the repository at the v0.27.0 tag
git clone -b v0.27.0 https://github.com/shellhub-io/shellhub.git - 3
Change into the project directory
cd shellhub - 4
Start the server with Docker Compose, then open /setup on your server to create the admin account
make start
Things to know
- Self-hosting needs Docker with Compose and ports 80 and 22 free on the host.
- Production use requires extra setup for HTTPS and other settings described in the deployment guide.
In collections
Topics
FAQ
- What is shellhub?
- Self-hosted or cloud SSH gateway that gives remote access to Linux devices and servers behind NAT and firewalls, with per-user identities. ShellHub is a centralized SSH gateway for Linux devices and servers. A small agent on each device dials out to the ShellHub server, so the device needs no public IP or inbound port, whether it is a server, a cloud instance or an embedded device in the field. You then connect through the server using ssh, scp, sftp or a web-based terminal.
- Is shellhub free to use? What license does it have?
- shellhub is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is shellhub still maintained?
- Actively maintained. The last commit to shellhub was on Nov 6, 2026.
- What can I use shellhub for?
- Reaching servers or cloud instances that have no public IP. Managing fleets of embedded Linux devices deployed in the field. Giving team members audited, revocable SSH access to shared machines. Running a self-hosted alternative to a commercial SSH access gateway.
- How do I install shellhub?
- Create a free ShellHub Cloud account, or self-host (step 2 onward) Clone the repository at the v0.27.0 tag: git clone -b v0.27.0 https://github.com/shellhub-io/shellhub.git Change into the project directory: cd shellhub Start the server with Docker Compose, then open /setup on your server to create the admin account: make start
- Where can I get shellhub?
- The source code and installation instructions are on GitHub: https://github.com/shellhub-io/shellhub
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A desktop GUI for managing SSH tunnels, plus Dev Tunnel, Cloudflare Tunnel and FRP, on macOS and Windows.
Self-hosted server management software for connecting to machines over SSH, VNC and RDP, with SFTP, Docker and Proxmox management.
A web-based SSH and Telnet client that lets you open terminal sessions to remote servers directly from a browser.
Shell script that installs and manages an OpenVPN road warrior server on Ubuntu, Debian and RHEL-family distros.
Open source Java GPS tracking server supporting 200+ device protocols, with a REST API and any major SQL database.