Guide

Raspberry Pi remote access: SSH, VNC and files from one app

A Raspberry Pi tends to end up somewhere awkward: behind the TV, in the garage running a sensor, or on a shelf with no screen or keyboard at all. The same goes for the small Linux servers and mini PCs in a homelab. You want to reach them from your desk, or from your phone when you're out, without plugging anything in.

The RemoteAccessApp app for Windows gives a Pi the same treatment as any server: an SSH terminal, its files, a live dashboard, a VNC desktop through an SSH tunnel, and a serial console for when the network is down.

  • SSH with keys
  • VNC through an SSH tunnel
  • Files and a live dashboard

Updated · Works on Windows 10 and 11

Before you start: SSH on the Pi

SSH is off by default on Raspberry Pi OS. The usual ways to turn it on are the OS customization settings in Raspberry Pi Imager when you write the card, where you also set the user name and password, or sudo raspi-config on a Pi you can already reach, under its interface options. Current releases ask you to choose a user name rather than providing a default one, so connect as the user you set up. Other distributions for the Pi and other small boards have their own settings; check their documentation.

Find the Pi's address on its own screen, or from your router's list of devices, or on the Pi with:

hostname -I

Connect from RemoteAccessApp

  1. Step 1: Add the Pi as an SSH host

    In the RemoteAccessApp app, open Connections, click Add host, choose SSH and enter the Pi's address, such as 192.168.1.50, and your user name. Put it in a group, for example Small servers.

  2. Step 2: Check the key fingerprint and connect

    The first time, the app shows the Pi's key fingerprint. Compare it with the one the Pi reports before you trust it; see server keys.

  3. Step 3: Switch to key sign-in

    On the Connections page, import an Ed25519 key under Keys & passwords (or make one on the website), click Copy public key, and add it as a line in ~/.ssh/authorized_keys on the Pi. Then edit the host and choose key sign-in. The SSH keys help has the exact commands and permissions.

  4. Step 4: Open the dashboard and files

    On the terminal tab, click Dashboard for live CPU, memory, disk and network graphs, and open the host's files to drag files between your PC and the Pi.

A desktop over VNC, through SSH

If your Pi runs a desktop, you can see it in a VNC tab. RemoteAccessApp's VNC client signs in with no password or with the standard VNC password. Some VNC servers, including the ones some Raspberry Pi OS releases set up, can be configured to require other sign-in methods, and the app can't connect to those. Set the VNC server you use to the standard VNC password.

Then keep VNC off your network and reach it through SSH: have the VNC server listen only on the Pi itself where it allows that, and add a VNC host with address 127.0.0.1 and port 5900, set to go through the Pi's saved SSH host. The VNC connection then travels inside SSH, encrypted, and port 5900 never needs to be open on your network. The same tunnel is how you reach KVM and QEMU VM consoles remotely on a Linux virtualization host.

Why the tunnel

The standard VNC password check is old and VNC itself doesn't encrypt the screen or your keystrokes. Inside SSH, both are protected.

Files: copy, edit and back up

  • Drag and drop between your PC and the Pi in the two-pane file tab, or drop files from File Explorer. See copying files with SFTP.
  • Edit a config file in your own editor. Choose Edit on a file in the Pi's file tab; each save is uploaded back to the Pi.
  • Back up to another server. Copy an archive of the Pi's data straight to your NAS or backup host with a server-to-server copy, without it landing on your PC. See copying files between two servers.

Watch a small board's load

The dashboard reads the Pi over SSH every few seconds with read-only commands, installs nothing and never uses sudo, and only while its tab is on screen. On a small board, that's an easy way to see whether a process is pinning the CPU or the SD card is filling up: disks over 90% full are flagged. The same works on any Linux mini PC or small server.

Reach it from your phone or another network

Sign in to the RemoteAccessApp website on any browser, phone included, and open the Pi's saved SSH host. Because its address is on your home network, choose Through my PC: one of your own Windows PCs at home, running the RemoteAccessApp Agent, opens the connection there. No port forwarding on your router, and it's free. See remote desktop without port forwarding.

The post on how to SSH into your home server from your phone walks through it on a small screen, with tips for the key row and checking the host key.

When the network is down: a serial console

A Pi with no network can still be reached over its serial pins with a USB-to-serial adapter, once the serial console is turned on in the Pi's settings (the details vary by model and release, so check the Raspberry Pi documentation). Plug the adapter into a Windows PC and choose Add serial console… on the Connections page. Most Pi serial consoles use 115200 baud. The adapter can even be on one of your other PCs: open a session with that PC and choose Serial ports on this PC…. See serial connections.

Bigger servers often have a management controller of their own for when the operating system won't start. On Supermicro boards, that's how you reach Supermicro IPMI and the iKVM console remotely.

Several Pis at once

Tag your boards, save an update or check script in Scripts & History, and run it on all of them with Run on hosts…, with each board's output in one list:

uptime
df -h /
vcgencmd measure_temp

vcgencmd is specific to Raspberry Pi OS; leave it out for other boards. For a whole lab, including hypervisors, see managing Proxmox, VMware and KVM hosts from one app, and for containers on the Pi, Docker and Podman hosts. If a Windows server in the lab runs Hyper-V, here's how to manage Hyper-V hosts and VMs remotely.

Questions, answered

More homelab and virtualization guides

Related