How to SSH into a Raspberry Pi from Windows (2026)
Five minutes from boxed Pi to remote shell. This guide uses only what ships with Windows 10/11 — no extra software required — and covers the errors that trip everyone up. At the end: the workflow upgrade for when one Pi becomes five.
Step 1 — Enable SSH on the Pi
SSH is off by default on Raspberry Pi OS. Three ways to turn it on:
- Best — before flashing: in Raspberry Pi Imager, click the gear icon and tick Enable SSH (you can also preset the username, password, and Wi-Fi — do this and skip half this guide).
- Headless, already flashed: put the SD card in your PC and create an empty file named exactly
ssh(no extension) on the small boot partition. - With monitor/keyboard: run
sudo raspi-config→ Interface Options → SSH → Enable.
Step 2 — Find the Pi on your network
Try the friendly name first — Raspberry Pi OS advertises itself over mDNS:
ping raspberrypi.local
If that resolves, you're done — use the name instead of an IP. If not, check your router's connected-devices page (look for "raspberrypi"), or from PowerShell after pinging the broadcast range:
arp -a | findstr b8-27-eb dc-a6-32 e4-5f-01
Those are the Raspberry Pi Foundation's hardware address prefixes — any hit is a Pi.
Step 3 — Connect from Windows
Windows 10/11 ship an OpenSSH client. In PowerShell or Terminal:
ssh pi@raspberrypi.local # or, with an IP: ssh pi@192.168.1.42
Type yes to accept the host key on first connect, enter the password, and you have a shell. (On newer Raspberry Pi OS images there is no default pi user — use whatever username you set in the Imager.)
Step 4 — Key-based login (stop typing passwords)
# On Windows (PowerShell) — generate a modern key: ssh-keygen -t ed25519 # Copy it to the Pi (one line, replace user/host): type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh pi@raspberrypi.local "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Next connection: no password. This is also step one of managing keys across multiple servers.
Fixing the common errors
"Connection refused"
SSH isn't enabled or hasn't started — redo Step 1, then sudo systemctl status ssh if you have console access.
"Connection timed out"
Wrong IP, different subnet (guest Wi-Fi is a classic), or the Pi never joined the network. Re-check Step 2; verify Wi-Fi credentials if headless.
"REMOTE HOST IDENTIFICATION HAS CHANGED"
Usually you reflashed the SD card, so the Pi has a new host key. Clear the old one and reconnect:
ssh-keygen -R raspberrypi.local
That's the whole setup. Everything below is about making daily Pi work pleasant rather than possible.
When one Pi becomes five: the one-window workflow
The stock tooling gets painful at fleet scale — one terminal window per Pi, passwords or key configs per machine, and a browser tab for every command you forget. AidaIDE (free forever, no license key) was built for exactly this:
- mDNS auto-discovery finds the Pis on your network for you.
- Every Pi lives in an AES-256 credential vault — connect with one click, tabs in one window.
- LCOT puts thousands of plain-English commands next to the terminal — "show CPU temperature", "list USB devices", "check disk space" — one click each.
- The file browser shares the session: edit
/boot/config.txtin a real editor and save straight to the Pi.
Free forever · Windows, macOS, Linux · unlimited devices
Sign Up Free — Download AidaIDE