This tutorial explains step by step to do ssh login from laptop into Raspberry Pi. By doing ssh login, you will control the whole Raspberry Pi from command line from your laptop. We suppose the Raspberry Pi is not connected into any monitor. First, you should edit your /etc/network/interfaces file in Raspbian. Second, you boot Raspberry Pi up. Third, you do ssh login into Raspberry Pi. This article is basically a reduced version for Remote Desktop XRDP Raspberry Pi. We hope this helps.
Software Requirements
- openssh-server (Raspberry Pi) (installed)
- nmap (Laptop) (optional)
- Correct settings in /etc/network/interfaces (Raspberry Pi)
Hardware Requirements
- A Raspberry Pi 3 with Raspbian operating system.
- A WLAN router, an Android phone for example.
- A laptop with Ubuntu operating system.
Preparation 1
- Write Raspbian image into a microsd card. Read How To Write Raspbian.
- Create a USB tether WLAN hotspot from your Android phone. We name its SSID as myubuntuhotspot and WPA-PSK and its password as hotpassword.
Preparation 2
- Access your already bootable microSD from your laptop. Access it until you can read /etc/network/interfaces file inside the microSD. That is the configuration file for Raspbian. Don't edit the /etc/network/interfaces from your own Ubuntu system.
- Backup the interfaces file by doing command sudo nano /the/path/to/interfaces /the/path/to/interfaces-backup
- Edit the interfaces file by doing command sudo nano /the/path/to/interfaces.
- Enter the correct settings like the example below. Essentially, you need to provide SSID name and password from your Android hotspot.
1. Correct Settings
This is the original default setting of /etc/network/interfaces file in Raspbian:
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet manual allow-hotplug wlan0 iface wlan0 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf allow-hotplug wlan1 iface wlan1 inet manual wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
And this is the example setting of /etc/network/interfaces file for this tutorial:
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: #source-directory /etc/network/interfaces.d auto lo iface lo inet loopback auto wlan0 iface wlan0 inet dhcp wpa-ssid "myubuntuhotspot" wpa-psk hotpassword
Note: you should change the myubuntuhotspot into your own hotspot SSID, and change the hotpassword into your hotspot password. Basically you just need to add 4 lines (from auto wlan0 until hotpassword) and it is safe to delete from the original the 7 lines (from iface eth0 until wpa-supplicant.conf).
What those settings do in Raspberry Pi is to automatically detect and connect into your Android WLAN tethering hotspot. Because the Raspberry connects to the hotspot and your laptop connects to the same hostpot, you can do ssh login from your laptop into the Raspberry Pi.
2. Boot Raspberry Pi
Now connect power into your Raspberry Pi until it boots. You will see the two indicator leds blinking. Wait for about 1 or 2 minutes until Raspberry Pi can connect automatically into your Android hotspot.
3. Find Raspberry Pi IP Address
You should know what is the IP address of your Raspberry Pi. For this, we use nmap. In your laptop perform these series of commands:
ifconfig
You should see your WLAN interface (wlan0 or such) has an IP address. My laptop IP address is 192.168.43.201. My laptop gets this IP from my Android hotspot. Basically, any other host will have the same range of IP such as 192.168.43.2xx. You may guess yourself that Raspberry Pi gets 202. But for any purpose you may use nmap command below:
nmap -v 192.168.43.202-210
That nmap command scans your network (Android hotspot) for any other host connected from number 202 until number 210. See picture below, nmap finds a host named raspberrypi with IP address 192.168.43.202. This is my Raspberry Pi. And with the same method you will find your Raspberry Pi too.
4. SSH Login from Laptop
From your laptop, login to Raspberry Pi with ssh (openssh, already installed built-in in Ubuntu) command below. Note: default username for Raspbian is pi with password raspberry.
ssh pi@192.168.43.202
Now you must see Raspbian shell prompt like this pi@raspberrypi: ~$ if you have logged in correctly into Raspberry. You will see a notice text saying you are using GNU/Linux. To exit, just type command exit. See picture below.
Now from your laptop you can do anything in Raspberry Pi you usually do such as navigating directory, finding files, doing networking stuffs, and of course install any software package.