Primeros pasos raspberry pi headless

June 1, 2019 - Reading time: 4 minutes

Acabo de instalar Raspbian 10 (Buster) en mi Raspberry Pi 3b+, resinstalando Pi-Hole e instalado Nginx en vez de lighttpd y haciéndolo me di cuenta que siempre repito los mismos pasos así que los voy a dejar aquí documentados. No se realizan tan a menudo como para necesitar un script o ansible.

Muchos al principio creen que se necesita un monitor y un teclado para instalar y configurar una raspberry pero no es así, una vez copiada la imagen a la tarjeta SD, disco o lo que sea que vayamos a utilizar creamos el archivo "ssh" sin extensión en la partición boot. Iniciamos la máquina y accedemos por ssh con la ip (para conocer la ip quizá debamos acceder al router de nuestra red). El usuario por defecto es "pi" y la contraseña "raspberry", a continuación podemos proceder utilizando "sudo" o con root.

Creación de usuario

Añadimos un usuario

$ sudo adduser usuario

Como el objetivo de esto es cargarnos el usuario pi y dejar nuestro usuario como administrador, vamos a darle permisos al usuario

$ usermod -a -G sudo usuario

Nos desconectamos de la sesión con el usuario pi y conectamos con el nuevo usuario.

$ deluser pi --remove-home

Este comando se carga al usuario pi y además elimina la carpeta home del usuario. (/home/pi/)

Actualizamos la máquina y mientras se actualiza podemos iniciar una nueva sesión para seguir modificando cosas ( dirección ip, claves ssh, nombre de la máquina)

$ apt update && apt upgrade

Si queremos cambiar la IP que tiene asignada por defecto desde la propia raspberry modificamos el archivo /etc/dhcpcd.conf

interface eth0
        static ip_address=192.168.1.10/24
        static routers=192.168.1.1
        static domain_name_servers=127.0.0.1

Le cambiamos el nombre a la máquina editando /etc/hosts y /etc/hostname, una vez guardados los archivos reiniciamos. El primer archivo es muy fácil, borramos el contenido y escribimos el nombre que queramos el segundo debe quedar así:

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       nombre

Acceso mediante archivo clave

Con el usuario que hemos creado:

cd
mkdir .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
cd ..
chmod 700 .ssh
ssh-keygen -b 4096
cat .ssh/id_rsa.pub >> .ssh/authorized_keys

Ahora con la clave pública (id_rsa.pub) podremos generar un archivo .ppk con puttygen para PuTTY.

Editamos el archivo sshd_config (/etc/ssh/)

PermitRootLogin no
StrictModes yes
RsaAuthentication yes
PubkeyAuthentication yes

PasswordAuthentication no
PermitEmptyPasswords no

AllowUsers nuestrousuario

Reiniciamos el servicio ssh

$ systemctl restart sshd

Y listo, ya tenemos la raspberry configurada, para mayor seguridad en sshd_config podemos cambiar el puerto

Port 20022

Si queremos deshabilitar WiFi y Bluetooth:

Editamos /etc/modprobe.d/raspi-blacklist.conf y reiniciamos.

#wifi
blacklist brcmfmac
blacklist brcmutil
#bt
blacklist btbcm
blacklist hci_uart

About

I am a system administrator, everything is hosted in my home.
I document my projects here, sometimes I will write about other things.