Raspberry Pi Remote Access

SSH and VNC let you control a Raspberry Pi from another computer over the network, so you don't need a monitor and keyboard permanently attached to it.

Why Remote Access Matters

Plenty of Raspberry Pi projects end up running "headless", tucked inside a project box, mounted behind a TV, or sitting on a shelf with no monitor or keyboard connected at all. Remote access is what makes that practical: it lets you reach the Pi's command line or desktop from a laptop or another computer over the local network, so the Pi itself only needs power and a network connection.

SSH: Command-Line Access

SSH (Secure Shell) opens an encrypted remote terminal session, letting you type commands on your own computer that actually run on the Pi. It's lightweight, works well even over a slow connection, and is the go-to method for anything script- or server-oriented. SSH is disabled by default on a fresh install for security reasons; it can be turned on through raspi-config's Interface Options, through Raspberry Pi Imager's advanced settings before first boot, or by placing an empty file named exactly "ssh" (no extension) in the boot partition of the microSD card.

Connecting Over SSH

# Enable SSH ahead of time, run once on the Pi itself
sudo raspi-config nonint do_ssh 0

# From another computer on the same network
ssh pi@raspberrypi.local

# If the .local hostname doesn't resolve, connect by IP address instead
ssh pi@192.168.1.42

VNC: Full Desktop Access

VNC (Virtual Network Computing) goes further than SSH by streaming the Pi's actual graphical desktop to your screen and forwarding your mouse and keyboard input back to it, as if you were sitting in front of it. Raspberry Pi OS ships with RealVNC's server built in, and like SSH, it's off by default and gets switched on from the Interface Options section of raspi-config. VNC is the better choice whenever a project needs a GUI application, rather than just terminal commands.

FeatureSSHVNC
InterfaceText-based command lineFull graphical desktop
Typical bandwidth useLowHigher, since it streams the screen
Default port225900
Good forRunning commands, scripts, transferring filesUsing GUI apps, viewing the desktop remotely
Enabled by defaultNoNo

Finding Your Pi's Address on the Network

  • Try the mDNS hostname first, usually raspberrypi.local unless you changed it
  • Check your router's admin page for a list of connected devices and their assigned IP addresses
  • If you set a hostname or static IP through Raspberry Pi Imager's advanced options, use that
  • From another computer on the same network, tools like arp -a or a network scanner can help locate it
Note: Change the default account password before enabling SSH or VNC. The Raspberry Pi's default credentials are well known, and an internet-exposed Pi with an unchanged password is a common target for automated attacks; key-based SSH authentication is even stronger than a password alone.
Note: If you run more than one Raspberry Pi on the same network, give each one a unique hostname. Otherwise they'll all try to answer to raspberrypi.local, and you won't be able to tell them apart.

Exercise: Raspberry Pi Getting Started

What tool is commonly used to write an OS image onto a microSD card before first boot?