DEV Community

Hedy
Hedy

Posted on

How to remote connect to Raspberry Pi?

Remote connecting to a Raspberry Pi is essential for headless (no monitor) operation. Here's a complete guide covering all the methods from easiest to most advanced.

Prerequisites: First-Time Setup
Before you can connect remotely, you need to:

1. Enable SSH (for command line access):

  • Before first boot: Create an empty file named ssh (no extension) on the boot partition of your SD card.
  • After boot (with monitor): Run sudo raspi-config > Interface Options > SSH > Enable

2. Connect to Network:

  • Ethernet: Plug in a network cable (easiest for initial setup).
  • Wi-Fi: Before first boot: Create a wpa_supplicant.conf file on the boot partition with your Wi-Fi credentials:
conf

country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YOUR_WIFI_NAME"
    psk="YOUR_WIFI_PASSWORD"
}
Enter fullscreen mode Exit fullscreen mode

3. Find Your Pi's IP Address:

  • Check your router's connected devices list
  • Use network scanner apps like Fing (mobile) or Advanced IP Scanner (Windows)
  • If you have monitor access: Run hostname -I in terminal

  • Method 1: SSH (Secure Shell) - Command Line Access
    Use Case: Server management, file editing, programming, headless operation.

Connection Steps:
1. On Windows:

  • Use PowerShell or Command Prompt
  • Command: ssh pi@
  • Example: ssh pi@192.168.1.100
  • First connection: Type yes to the security prompt
  • Default password: raspberry

2. On macOS/Linux:

  • Open Terminal
  • Same command: ssh pi@
  • Default password: raspberry

Pro Tip: Use VS Code with the "Remote - SSH" extension for a better experience with file editing and terminal access.

Method 2: VNC (Virtual Network Computing) - Full Desktop
Use Case: When you need the graphical desktop interface.

Setup on Raspberry Pi:
1. Enable VNC:

bash

sudo raspi-config
# Go to: Interface Options > VNC > Enable
Enter fullscreen mode Exit fullscreen mode

2. Set Resolution (if no monitor):

bash

sudo raspi-config
# Go to: Display Options > Resolution > Choose 1920x1080 or similar
Enter fullscreen mode Exit fullscreen mode

Connect from Your Computer:

  1. Download VNC Viewer from realvnc.com
  2. Enter your Pi's IP address in VNC Viewer
  3. Login:
  • Username: pi
  • Password: raspberry

Method 3: RDP (Remote Desktop Protocol) - Windows Alternative
Use Case: If you prefer Windows Remote Desktop interface.

Setup on Raspberry Pi:

bash

sudo apt update
sudo apt install xrdp
Enter fullscreen mode Exit fullscreen mode

The service starts automatically.

Connect from Windows:

  1. Press Win + R, type mstsc
  2. Enter your Pi's IP address
  3. Login:
  • Session: Xorg
  • Username: pi
  • Password: raspberry

Method 4: Web-based Access - Modern Approach
Using Raspberry Pi OS Bullseye+:

  1. Enable in raspi-config:
bash

sudo raspi-config
# Go to: Interface Options > VNC > Enable
# Also enable: Interface Options > SSH > Enable
Enter fullscreen mode Exit fullscreen mode
  1. Access via browser: Go to https://:80/

Using Cockpit (Advanced):

bash

sudo apt install cockpit
# Access via: https://<your-pi-ip-address>:9090/
Enter fullscreen mode Exit fullscreen mode

Method 5: Physical Serial Connection (Emergency Access)
Use Case: When network is broken or for low-level debugging.

Hardware Needed: USB to TTL Serial Cable (like FT232RL or CP2102)

Wiring:

  • Cable GND → Pi GND (Pin 6)
  • Cable TX → Pi RX (GPIO 15, Pin 10)
  • Cable RX → Pi TX (GPIO 14, Pin 8)
  • Do NOT connect power wires!

Software:

  • Enable in sudo raspi-config > Interface Options > Serial Port > Yes for login shell
  • Use PuTTY (Windows) or screen (macOS/Linux) at 115200 baud

Troubleshooting Common Issues

  1. "Connection refused" error:
  • SSH is not enabled: Use the ssh file method on SD card
  • Wrong IP address: Double-check your router's device list
  1. VNC shows gray screen:
  • No desktop environment installed (on Lite OS)
  • Resolution not set: Configure via sudo raspi-config
  1. Can't find Pi on network:
  • Check Ethernet cable/Wi-Fi credentials
  • Try restarting Pi: sudo reboot
  • Use ping raspberrypi.local (if Avahi is enabled)

Security Recommendations
Change default password immediately:

bash

passwd
Enter fullscreen mode Exit fullscreen mode

Create a new user (optional but recommended):

bash

sudo adduser yourname
sudo usermod -a -G sudo yourname
Enter fullscreen mode Exit fullscreen mode

Enable firewall:

bash

sudo apt install ufw
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow from 192.168.1.0/24 to any port 5900  # VNC from local network only
Enter fullscreen mode Exit fullscreen mode

Quick Start Cheat Sheet

The SSH method is most common for development, while VNC/RDP are better when you need the full desktop environment. Start with SSH and expand to other methods as needed!

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.