SSH configuration

Set static IP

See what's managing eth0

Run

systemctl is-active NetworkManager
systemctl is-active systemd-networkd
nmcli dev status 2>/dev/null || true

If NetworkManager is active

  1. Get the connection name for eth0:

nmcli -g NAME,DEVICE con show --active
  1. Set static IP (replace CONN_NAME with the name you got):

sudo nmcli con mod "CONN_NAME" ipv4.addresses 192.168.1.101/24
sudo nmcli con mod "CONN_NAME" ipv4.gateway 192.168.1.1
sudo nmcli con mod "CONN_NAME" ipv4.dns "192.168.1.1 1.1.1.1"
sudo nmcli con mod "CONN_NAME" ipv4.method manual
sudo nmcli con down "CONN_NAME" && sudo nmcli con up "CONN_NAME"
  1. Verify

ip -4 addr show dev eth0
ip route | grep default

You want:

  • inet 192.168.1.101/24

  • default via 192.168.1.1 dev eth0 (may or may not still say proto dhcp, but the key is the src becomes .101 and the address is static)

If systemd-networkd is active

Open the file /etc/dhcpcd.conf and place the following lines of code, which configures the connection using the eth0 (ethernet) interface:

In the example above, we have used 192.168.1.X/24 as the static private IP and 192.168.1.1 is the IP of our router (a.k.a. gateway, check it using router -n command).

Finally, restart the device

Change ssh port

A good practice to increase security is to change the default ssh port (22) to a different one (higher than 1000, lower than 65535). Open the ssh configuration (file /etc/ssh/sshd_config) and uncomment the line called “Port 22” and change it to

Finally, restart ssh service

Now, to access the raspberry type:

Last updated