Headless Raspberry Pi 3 B+ SSH WiFi Setup (Mac + Windows, 9 Steps)
This article covers setting up the Raspberry Pi 3 Model B+ for headless SSH access over WiFi using a Mac or Windows 10.
If you would like to setup a headless Pi Zero W, see: Headless Pi Zero W Setup.
If you have an older Pi Zero 1.3, see my article Setup Pi Zero Wifi.
Step 1. Download a lite Raspbian image
These instructions are for a Raspbian Buster image that I downloaded from here:
https://www.raspberrypi.org/downloads/raspbian/
I'm using the lite image (no desktop) version 4.19 from June 20, 2019.
A previous version of this article used the Raspbian Stretch lite image (no desktop) version 4.9 from March 13, 2018.
Step 2. Burn the Raspbian image to the SD card
To burn an image to the SD card you can use Etcher.
- Browse to
https://www.balena.io/etcher/ - Download the version for your operating system
- Run the installer
To run Etcher is pretty straight forward.
Put a blank mini SD card and adapter into your machine. No need to format it. You can use a new SD card right out of the package.
- Select image - browse to the zip file you downloaded from Raspbian
- Select drive - it may find the SDHC Card automatically
- Click Flash!
After you flash (burn) the image, Finder (Mac) or File Explorer (Windows) may have trouble seeing it. A simple fix is to pull the SD card out then plug it back in. On a Mac it should appear on the desktop with the name boot. On Windows it should appear in File Explorer with the name boot followed by a drive letter.
Step 3. Enable ssh
For security reasons, ssh is no longer enabled by default. To enable it you need to place an empty file named ssh
(no extension) in the root of the boot disk.
Open up a terminal window and run this command:
touch /Volumes/boot/ssh
- Run Notepad
- In a new file put in one space and nothing more
- Click File / Save As ...
- Be sure to set Save as type to All Files (so the file is NOT saved with a .txt extension)
- Call the file ssh and save it
- Close the file
If you are comfortable with the Windows command line you could try this instead (untested!):
- Open up a command line
- Switch to the drive and root where boot is located:
- Type:
type NUL >> ssh
- Verify that file ssh was created
Step 4. Add network info
Create a file in the root of boot called: wpa_supplicant.conf
(instructions below). Then paste the following into it (adjusting for your ISO 3166 alpha-2 country code, network name and network password):
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NETWORK-NAME"
psk="NETWORK-PASSWORD"
}
Create a new empty file that will hold network info:
touch /Volumes/boot/wpa_supplicant.conf
Edit the file that you just created and paste the text above into it (adjusting for the name of your country code, network name and network password):
- Run Notepad
- Paste in the contents above (adjusting for the name of your country code, network name and network password)
- Click File / Save As ...
- Be sure to set Save as type to All Files (so the file is NOT saved with a .txt extension)
- Call the file
wpa_supplicant.conf
and save it - Close the file
Step 5. Eject the micro SD card
- Right-click on boot (on your desktop or File Explorer) and select the Eject option
- This is a "logical" eject - meaning it closes files and preps the SD card for removal - you still have to pull the card out yourself
Step 6. Boot the Raspberry Pi
- Remove the mini-SD card from the adapter and plug it into the Raspberry Pi
- Plug a Micro-USB power cable into the power port
- Give the Pi plenty of time to boot up (it can take as much as 90 seconds -- or more)
Step 7. Login over Wifi
This part assumes that ssh is enabled for your image and that the default user is pi with a password of raspberry.
NOTE: Your machine must be on the same WiFi network that you configured the Pi for.
- Open up a terminal window
- Run the following commands:
ssh-keygen -R raspberrypi.local
ssh pi@raspberrypi.local - Don't worry if you get a host not found error for the first command - the idea is to clear out any previous references to raspberrypi.local
- If the pi won't respond, press Ctrl-C and try the last command again
- If prompted with a warning just hit enter to accept the default (Yes)
- Type in the password -- by default this is raspberry
Install Bonjour
You can find Raspberry Pi's on your network using their hostname followed by .local
(example: raspberrypi.local
). But to do that in Windows you have to install the Bonjour service first.
If you have iTunes installed on Windows you probably don't have to do this. But if you don't, browse to:
Download Bonjour Print Services for Windows v2.0.2
and run the installer.
Install Putty
If you already have Putty installed, skip to the next section.
- Browse to:
https://www.putty.org - Download the 64-bit MSI (Windows Installer)
- Open it to run the installer (if asked for permission, click Yes)
- Select: Add shortcut to PuTTY on the Desktop
Login over WiFi using Putty
This part assumes that ssh is enabled for your image and that the default user is pi with a password of raspberry.
- Launch Putty
- Set the Host Name (or IP address) field to raspberrypi.local
- By default the Port should be set to 22 and Connection type should be set to SSH
- Click Open
- If you see a Security Alert select Yes
- A new terminal window should appear prompting you for a user name
- The default user name is: pi
- The default password is: raspberry
Step 8. Change your Hostname and Password
Congratulations! You can now access your Raspberry Pi over wifi!
If you can't connect, see the troubleshooting section near the end of this article. You may need to make some adjustments for your network.
Because your pi is now on the network, you should immediately change the hostname and password.
At the Pi command line type:
sudo raspi-config
Select the options for changing the hostname and password. On a new image, I would also recommend expanding the file system (now under the Advanced options). Once the changes are made, reboot.
Remember that once you reboot, you will need to use the new hostname to login over ssh. For example, if your new hostname is mypi you would connect like this on a Mac:
ssh pi@mypi.local
On Windows you would need to change the host name in Putty to mypi.local
.
Step 9. Get the updates
Once connected over WiFi, the next thing you should do is run some updates:
sudo apt-get update -y
sudo apt-get upgrade -y
Troubleshooting
Here are some helpful commands for debugging network and wifi issues on your Pi:
- This command should list your network in the first line for wlan0:
iwconfig
- This command should show info for wlan0:
ifconfig
- This command should list your network name:
iwlist wlan0 scan | grep ESSID
- To edit or review your wifi settings, run this command:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
- To get the ip address of your pi while remotely logged into it:
ip -4 addr show
- On a Mac you can get the ip address of your pi using this command (substitute raspberrypi with your hosts name):
arp -n raspberrypi.local
| Black / Clear Layer Case w/ Fan for Raspberry Pi Model B+ Raspberry Pi 3 Shell |
Related Articles
Here is a list of my related articles that you may find interesting:
- Headless Raspberry Pi 4 Lite Remote Desktop Upgrade - my article on how to upgrade a headless Raspberry Pi 4 lite image with a desktop and VNC server
- Headless Raspberry Pi 4 SSH WiFi Setup (Mac + Windows) - when you are ready to upgrade to the Raspberry Pi 4, I have you covered
- How to Run NodeJS on a Headless Raspberry Pi - in this article I show how to install and run a NodeJS server on a headless Raspberry Pi
- Raspberry Pi Touchscreen Kiosk Setup - in this article I show how to run a Raspberry Pi in kiosk mode, where the only thing a user sees is your Web app
- ROS TurtleSim Beginner's Guide (Mac) - if you are here because you'd like to get started with robotics, check out my ROS (Robot Operating System) beginner's guide
- Headless Pi Zero W Wifi Setup (Windows) - if you would like to setup a Raspberry Pi Zero W for headless operation, I have you covered on that too in this guide for Windows users
- Setup Pi Zero W Headless Wifi (Mac) - if you are Mac user with a Raspberry Pi Zero W, I have instructions for you too
- Raspberry Pi Resource Guide - checkout my resource guide for links to my most popular Raspberry Pi articles, as well as useful hardware
- How to Push Builds to a Raspberry Pi using Balena (Resin) - for the advanced user, I have a guide for using a special service to push images to your Pi
References
- balenaEtcher [1] - a tool that handles burning the image to the micro SD card for you