Remote access to a Raspberry Pi from anywhere with Clavda
Reach a Raspberry Pi's terminal and files from your browser, behind any router and without port forwarding: pick the right ARM build and install with one command.
Updated 3 min read
A Raspberry Pi on a home or office network is hard to reach from outside: it has no public address, and opening a port on the router exposes it to the internet. Clavda avoids both. The agent on the Pi dials out to the Clavda relay, and you open its terminal and files from the browser, wherever you are.
A Raspberry Pi runs the standard Linux agent, so this is the Linux one-line install with one extra decision: which ARM build the Pi needs.
What you need
- A Raspberry Pi running Raspberry Pi OS or another Linux distribution, connected to the internet.
- A shell on the Pi, through a keyboard and screen or SSH on your local network.
- A Clavda account. See Before you start if you have not added a device yet.
Check whether your Pi runs a 32-bit or 64-bit OS
Pick the build by the operating system, not the board. A Raspberry Pi 4 or 5 can run either the 32-bit or the 64-bit Raspberry Pi OS, and the agent has to match the one installed. Ask the package manager:
dpkg --print-architecture
| It prints | Operating system | Installation platform | Binary |
|---|---|---|---|
arm64 | 64-bit Raspberry Pi OS | Linux ARM64 | clavda-client-linux-arm64 |
armhf | 32-bit Raspberry Pi OS | Linux ARMv7 | clavda-client-linux-arm |
Why not uname -m?
uname -m reports the kernel. Recent 32-bit Raspberry Pi OS images boot a 64-bit kernel on a Pi 4
or 5, so uname -m prints aarch64 even though the programs on the system are 32-bit. On
distributions without dpkg, getconf LONG_BIT prints 64 or 32 for the userland.
There is no ARMv6 build. Boards where uname -m prints armv6l, the original Raspberry Pi Zero, Zero W and Pi 1, cannot run the agent. The Pi Zero 2 W has a newer CPU and follows the table like any other Pi.
Install the agent
Add the Pi as a Linux device
In Clavda, open Devices, choose Add Device, and pick Linux ARM64 or Linux ARMv7 from the table above. There is no separate Raspberry Pi platform, because a Pi is a Linux ARM machine.
Turn on SSH on the Pi
The browser terminal logs in through the Pi's own SSH server, with the SSH username and password saved on the device. Raspberry Pi OS ships with SSH switched off unless you enabled it when you flashed the card. Turn it on with sudo raspi-config under Interface Options, or:
sudo systemctl enable --now ssh
SSH only has to accept connections from the Pi itself. You do not open any port on your router.
Run the one-line installer
Press Generate Setup Commands, keep Root (via sudo) selected, and paste the Install command into the Pi's shell:
curl -fsSL "https://<api-host>/i/AbCd1234?m=root" | sudo sh
A root install registers a system service that starts at boot, which is what you want on a Pi that runs headless.
Check that it is online
The Pi turns green under Devices within a few seconds. Unplug it and plug it back in: it reconnects on its own once the network is up.
If it does not connect
Exec format errormeans the build does not match the OS. Checkdpkg --print-architectureagain, change the device's installation platform, and reinstall.- The terminal opens and closes straight away: SSH is not running, or the saved SSH username or password is wrong.
- Anything else: read the agent's log with
sudo journalctl -u clavda.service -f, and see Troubleshooting.