In this tutorial, you’ll learn how to get started with the Raspberry Pi by installing the operating system, setting up Wi-Fi, and enabling and connecting with SSH. You can configure everything without the need for an extra monitor, keyboard, or mouse—the Raspberry Pi will be running headless.
Updated 18 December 2023
Table of Contents
In this article, we’ll cover the following:
- MicroSD Card
- Installing Raspberry Pi OS
- Connecting the Raspberry Pi to the Internet
- Enabling SSH
- Connecting via SSH to the Raspberry Pi
1) MicroSD Card for Raspberry Pi
The Raspberry Pi is a computer and like any other computer, it needs an Operating System (OS) installed.
The Pi doesn’t have built-in storage, so you’ll need a microSD card to install your OS. We’ll install the operating system on the microSD card. I recommend using a microSD card class 10 with at least 16GB of memory.
2) Installing Raspberry Pi OS
We’ll install the Raspberry Pi OS (previously called Raspbian), which is the official Raspberry Pi operating system.
1) Start by connecting the microSD card to your computer.
2) Go to the Raspberry Pi Software page.
3) Select and download the Raspberry Pi Imager (a tool to flash the OS on the microSD card) for your computer’s operating system.
4) Click on the downloaded file to install the Raspberry Pi Imager.
5) When the installation is complete, the Raspberry Pi Imager will open.
6) Click on Choose Device and select the Raspberry Pi board you’re using.
7) Click on Choose OS to select the Operating System. Select the Raspberry Pi OS (32-bit) or (64-bit).
8) Choose storage. You must choose the microSD card where you want to install the OS.
9) Click Next. Next, you’ll be asked if you would like to apply customisation settings. Click on Edit Settings to set up the Wi-Fi credentials, and enable SSH.
10) Under the GENERAL tab, you can set an hostname (the default will be raspberrypi), user, and password, and set Wi-Fi with your local network credentials, so that you can connect to your Raspberry Pi using Wi-Fi later on. You can also select your timezone.
Don’t forget to set your Wireless LAN country!
11) Then, click on the SERVICES tab and enable SSH with password authentication.
12) Click Save. You’ll be asked if you want to apply the OS customisation settings. Click YES.
13) Finally, you’ll be asked if you want to continue. Click YES to start burning the Raspberry Pi OS on the microSD card.
14) Wait a few minutes while it installs the Operating System.
15) When the installation is complete click on Continue. It will eject the microSD card safely.
15) Now, remove the card from your computer and insert it into your Raspberry Pi. Then, apply power to the Raspberry Pi to start it.
3) Connecting the Raspberry Pi to the Internet
If you’ve already set up the network credentials in the previous instructions, you can skip this section.
In this section, we’ll set up the Raspberry Pi to connect to the internet (your local network) when it first starts, without the need to connect a monitor, keyboard, or mouse (this is called headless).
Remove the microSD card from your computer and insert it again so that your computer can recognize the microSD card again.
1) Create a new file called wpa_supplicant.conf and paste the following.
country=PT # Your 2-digit country code
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid="YOUR_NETWORK_NAME"
psk="YOUR_PASSWORD"
key_mgmt=WPA-PSK
}
Insert your 2-digit country code and the network credentials (SSID and password) of the network that you want the Raspberry Pi to connect to.
2) Open the microSD card folder and move the wpa_supplicant.conf file there.
4) Enabling SSH
If you’ve already enabled SSH in the previous instructions, you can skip this section.
To access your Raspberry Pi remotely (via a computer on your local network) so you don’t need to connect a monitor, keyboard, or mouse to the Raspberry Pi, you need to enable SSH. SSH allows you to connect to your Raspberry Pi remotely from another machine and access the command line.
To enable SSH, you need to create a file called ssh (without any extensions) on the boot folder of the microSD card.
1) You can click here to download the ssh file.
2) Move that file to the boot folder of the microSD card.
When the Raspberry Pi starts up, the OS will find the ssh file and will automatically activate SSH.
Now, safely eject the microSD card from your computer and insert it on the Raspberry Pi. Then, power up the Pi using a 5V DC power source.
5) Connecting via SSH to the Raspberry Pi
SSH (which stands for secure shell) is a method of establishing a communication with another computer securely. All data sent via SSH is encrypted. SSH is based on a Unix shell, so it allows you to access your Raspberry Pi files from a remote machine by using terminal commands.
This part is divided into two sections:
A) Windows
To communicate with the Raspberry Pi via SSH, you need a software to handle SSH communication. We’ll use PuTTY. You need to install it on your computer if you haven’t already.
Downloading PuTTY
If you use Windows, you need to download and install a free application called PuTTY. Here’s how to install it:
1) Open your web browser and go to www.putty.org
2) Download PuTTY. We recommend downloading the putty.exe file.
3) Run the putty.exe file to execute the software.
Connecting to the Raspberry Pi via SSH
With PuTTY installed, power up your Raspberry Pi and follow the next steps (wait at least five minutes before connecting if this is the first time the Raspberry Pi is booting up to give some time to load the operating system):
1) Open PuTTY.
2) Select/enter the following options:
- Host Name: raspberrypi *
- Port: 22
- Connection type: SSH
* raspberrypi is the default hostname. If you’ve inserted a different hostname in the installation process, you should use that instead.
3) Click Open.
4) When you connect to your Raspberry Pi for the first time, you’re prompted by a message warning you that you’re attempting to establish a connection with an unknown host. Simply click No to proceed.
5) Now, you need to login to your Raspberry Pi using the username and password you set on the installation process.
If PuTTY warns that the hostname doesn’t exist, you might need to restart your router so that it assigns an IP address to your Raspberry Pi.
On the new window that opens, type your username and hit Enter.
6) Then, enter your password and hit Enter. You won’t see any characters showing up on the window while you type the password.
Now you have an SSH communication established with your Raspberry Pi. This will be useful to install software on your Pi, run your programs, create folders or files, etc…
I recommend reading my Raspberry Pi Cheat Sheet with Basic Linux Commands.
Shutting Down
To shut down your Raspberry Pi, simply type this command on the command line:
pi@raspberry:~ $ sudo poweroff
The SSH connection will be shut down right after.
B) Mac OS X/Linux
SSH (which stands for secure shell) is a method of establishing a communication with another computer securely. All data sent via SSH is encrypted.
SSH is based on a Unix shell, so it allows you to access your Raspberry Pi files from a remote machine by using terminal commands. It has grown to be one of the most popular methods for communication between different devices.
Establishing an SSH Communication
In Mac OS X and Linux, you can use the default Terminal window to establish an SSH communication, because SSH comes in all Unix-based OSes. Follow these steps:
1) Boot up your Raspberry Pi.
2) Open a new Terminal window.
3) Type the following command:
$ sudo ssh pi@raspberrypi
or:
$ sudo ssh [email protected]
Note: if you defined a different hostname and username rather than raspberrypi and pi, you should use those instead.
4) Enter your computer password (so you can run a sudo command), and type yes.
5) When you’re asked to type a password for your Raspberry Pi type the password you’ve set previously, press Enter/Return.
When you connect your computer to your Raspberry Pi for the first time, you’re prompted by a message warning you that you’re attempting to establish a connection with an unknown host. Simply click OK to proceed
Your Terminal window should look like the Figure below:
Now you have an SSH communication established with your Raspberry Pi. This will be useful to install software on your Pi, run your programs, create folders or files, etc…
I recommend reading my Raspberry Pi Cheat Sheet with Basic Linux Commands.
Shutting Down
To shut down your Raspberry Pi, simply type this command on the command line:
pi@raspberry:~ $ sudo poweroff
Wrapping up
In this tutorial, you’ve set up your Raspberry Pi to run headless. You’ve installed the Raspberry Pi OS, set up Wi-Fi, and enabled SSH so that you can access the Raspberry Pi command line from another machine on the same network. Finally, you established an SSH connection with the Raspberry Pi.
I hope this guide was useful. You’re now able to easily connect via SSH to your Raspberry Pi and send Linux commands (read Learning Basic Linux Commands – Raspberry Pi Cheat Sheet).
Looking for Raspberry Pi electronics projects? Check out our book: 20 Easy Raspberry Pi Projects Book
Thank you very much, it was very useful
You’re welcome Ruben! Thanks for reading!
When entering user = pi and password = rasberry does not allow me access and I already try a thousand times that may be happening.
Hi Alexis.
The passowrd is raspberry and not rasberry.
Have you modified any settings in your operating system?
Those are the correct credentials.
Regards,
Sara
Hi, does this instruction work on Nano pi M4 as well?
If not any idea?
Thanks,
NEVER use sudo to connect via ssh. That should absolutely not be necessary.
I guess it’s an update; very useful especially for Wifi setup connection instead of using “sudo raspi-config” instruction, thanks a lot.
Hi.
Yes, this is an update.
Previous instructions were for Raspbian. Now, there’s Raspberry Pi OS.
Additionally, we now include the instructions to set up Wi-Fi on boot without the need to connect a monitor or to connect via ethernet first.
Regards,
Sara
Hi Sara,
In the latest release, the default user “pi” has been removed 🙁 So there is no other way than either using the “Raspberry Pi Imager” (and clicking the setup icon to set a user and password aside from enabling ssh), or otherwise first connecting a screen and keyboard to create a username and password there.
I think there is a mistake in the instructions. Attempting to connect to connect to the raspberry Pi via ssh using: $ sudo ssh pi@raspberrypi
gave the error: Could not resolve hostname raspberrypi: nodename nor servname provided, or not known
Instead, I used: ssh [email protected]
sudo was not necessary
Hi. Thanks for your comment.
I’ll try it again on a mac OS computer.
Regards,
Sara
A neat trick I learned recently:
CTRL-SHIFT-X in rpi-imager opens a dialog where a lot of stuff can be set, even before burning an image. Like hostname, password, wifi settings, ssh enable and localization. Don´t know why they forgot the button for this.
Hi.
I didn’t know about that.
I’ll try it and update the tutorial.
Thanks.
Hi,
Great content, as always! There is also the possibility to do some of the instructions in the RPI IMAGER directly, by accessing to the advanced settings by pressing Ctrl-Shift-X. There we can configure hostname, ssh, Wi-Fi, among others…
Great work!
Hi.
I didn’t know about that.
I’ll try it and update the tutorial.
Thanks.
It turns out there’s a good reason for using sudo with ssh initially. I redid the installation since I’m still having trouble getting MQQT to run in any mode other than local. When I tried to use ssh pi@raspberrypi the logging balked because the fingerprint didn’t match. I could: A. try adding the key to /users//.ssh/known_hosts or B: just use sudo ssh and let the system take care of the problem. After failing at A I tried B and it worked just fine.
I think you folks do an amazing job at making this inherently complicated stuff work at the easiest level for all users. Now if I can just get MQTT dumbed back down to the pre-2.0 version less secure level that works so well for my simple needs.
Dobrý, chcel by som sa opýtať v čom môže byť problém ak pri snahe pripojiť sa na raspberry pi cez putty vypíše že nebolo možné sa pripojiť k raspbery, hosť neexistuje
Ďakujem za odpoveď
Hi Sara,
Thank you for the very good tutorials, I’ve been a fan of your website for a very long time. Not only for the Raspberry, but also for the ESPs, it has often taken me one step further.
After trying unsuccessfully to assign a static IP to my RaspberryPi, I’m in the process of setting it up again.
So it remains exciting whether it works now. But maybe you would have time and desire to write something about it, I would be happy about it.
A hostname is good, but addressing the Raspberry with an IP would be quite friendly, especially for Tasmota and ioBroker
Thank you again and have a great summer
Are you from Portugal, I ask because I love the country and have already hiked from Faro to Lisbon by bike and on foot from Porto to Santiago de Compostela.
Maybe this year it works again.
Adeus
Hi.
At the moment, we don’t have any tutorials showing how to set a static IP to the Raspberry Pi.
But I recommend taking a look at this tutorial: https://pimylifeup.com/raspberry-pi-static-ip-address/
I haven’t tried it, but usually those website’s tutorials are pretty good.
Yes, we are from Portugal.
I’m glad you enjoy our country.
Regards,
Sara
At the beginning you say “The Pi doesn’t have built-in memory, …”
It does have built-in memory.
I think you should say “The Pi doesn’t have built-in storage or a disk,…”
Hi.
Yes. I think that’s more correct.
Thanks.
Regards,
Sara
I updated my raspberrypi and did the binary update. I now cannot access the “settings” in raspberry pi. It goes to error and puts me back on the settings screen. So, I can’t adjust audio Bluetooth or anything on the settings screen. Anyway to revert back to what it was before the update?
Nice Job
but there is a problem
rpi 4 image
I will use IP-adress 192.168.1.164
Putty and SSH find can find that adress an i can reach that system in this manner,
but I like to use that adress in my browser (chrome)
that is impossible!! —>connection refused
Do you have a suggestion?
gr
Dick
Hi Rui,
does the RasPi provide his own network in this project where the ESP connects to?
In other words: Is the RasPi a standalone MQTT-server (broker), or is my local network still in use for the MQTT tasks?
Regards
Oli
Hi.
In our projects, your network is still in use for the Raspberry Pi to be connected.
Regards,
Sara