Headless Raspberry Pi Setup
Ethernet with Static IP Address
If you do not want to use the serial terminal or want to be able to log in to your Raspberry Pi over a network connection, you can give your Pi a static IP address, connect it to your network (or to your computer via a crossover/Ethernet cable), and log in via SSH.
Set Up Static IP Address
Plug the micro SD card (with the flashed Raspbian image) into your Linux computer. Most modern versions of Linux should automatically mount both partitions (boot and rootfs). You will need superuser privileges to edit the files on rootfs. Open a command prompt and edit /etc/dhcpcd.conf in rootfs.
Navigate to the rootfs directory (wherever your Linux distro has mounted it):
language:bash
cd /media/<USERNAME>/rootfs
Edit the dhcpcd.conf file:
language:bash
sudo nano /etc/dhcpcd.conf
Scroll down to the bottom of the file and add the following lines:
language:bash
interface eth0
static ip_address=192.168.4.2/24
static routers=192.168.4.1
static domain_name_servers=192.168.4.1
Save and exit by pressing ctrl + x and y when asked if you would like to save.
Enable SSH
In 2016, much of the Internet slowed to a crawl as a result of the IoT DDoS attack brought about by the Mirai botnet. In response to vulnerable IoT systems with default username and password logins, the Raspberry Pi Foundation decided to disable the SSH connection by default on all future releases of Raspbian. As a result, we now need to enable SSH so we can log in over a network connection. You can read more about the reasonings for this here.
Luckily, this is easy to do. With the SD card still plugged in, navigate to the boot partition and create a blank file named "ssh" in that directory.
Still in the console, enter the following commands:
language:bash
cd ../boot
touch ssh
You should see an empty file named "ssh" appear in the root boot partition.
Unmount the SD card from your host computer and insert it into the Raspberry Pi.
Configure Your Host Computer's IP Address
Plug an Ethernet cable into the Raspberry Pi and the other end into your computer. Technically, we should be using a crossover cable, but since the late 1990s, most computers are capable of automatically detecting and configuring for crossover.
Configure your host computer to have an Ethernet static IP address with the following properties:
language:bash
IP Address: 192.168.4.1
Subnet Mask: 255.255.255.0
Default Gateway: 192.168.4.1
Instructions to set up a static IP address for the following operating systems: Windows, Mac, Linux (Ubuntu).
Connect Over SSH
Secure Shell (SSH) gives us a terminal into an operating system over a network and encrypts the traffic, giving us a level of security. Depending on your host operating system, you have a number of options available to you.
Windows
PuTTY is an easy-to-use SSH, Telnet, and Serial terminal client. Open PuTTY, and set the Host Name to 192.168.4.2
and Port to 22
.
Click Open. If asked about chaching a host key, click Yes.
Mac and Linux
The easiest way to connect to another computer over SSH is to use the ssh command line tool built into most distributions of Linux and Mac OS. Simply open up a terminal and type:
language:bash
ssh 192.168.4.2
Update: Users may need to use ssh pi@<"IP Address">
, where pi
predefines the login username.
Log In
Once SSH connects, enter the default login credentials:
- Username: pi
- Password: raspberry
You should be presented with a command prompt, if all goes well.