Category Archives: NetBSD

Configuración inicial headless de NetBSD 10.1 en un Orange Pi Zero

Tengo un Orange Pi Zero al que quise instalarle NetBSD. NetBSD usuarlmente se configura por primera vez utilizando un teclado y monitor, pero es que el Orange Pi Zero no tiene salida HDMI y la verdad no tenía ganas de buscar en mi largo cajón de tarecos mi USB->Serial interface para conectarme via serial.

Así que, cómo hago para conectarme? SSH viene por defecto activo, pero sin clave, por lo que no puedes ingresar via SSH.

Lo que hice a la final fue insertar el SD de mi Orange Pi Zero en otro NetBSD, ahí monte el disco, y veo con dmesg -T que se llama sd0

[Sat Mar 7 22:31:34 UTC 2026] umass0 at uhub2 port 2 configuration 1 interface 0
[Sat Mar 7 22:31:34 UTC 2026] umass0: Generic (0x14cd) Mass Storage Device (0x1212), rev 2.00/1.00, addr 5
[Sat Mar 7 22:31:34 UTC 2026] umass0: using SCSI over Bulk-Only
[Sat Mar 7 22:31:34 UTC 2026] scsibus0 at umass0: 2 targets, 1 lun per target
[Sat Mar 7 22:31:34 UTC 2026] sd0 at scsibus0 target 0 lun 0: disk removable
[Sat Mar 7 22:31:34 UTC 2026] sd0: fabricating a geometry
[Sat Mar 7 22:31:34 UTC 2026] sd0: 15193 MB, 15193 cyl, 64 head, 32 sec, 512 bytes/sect x 31116288 sectors
[Sat Mar 7 22:31:34 UTC 2026] sd0: fabricating a geometry

Lo inspecciono con disklabel sd0:

netbsd-ipv6# disklabel sd0
# /dev/rsd0:
type: SCSI
disk: STORAGE DEVICE
label: fictitious
flags: removable
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 64
sectors/cylinder: 2048
cylinders: 1297
total sectors: 31116288
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # microseconds
track-to-track seek: 0 # microseconds
drivedata: 0

8 partitions:
# size offset fstype [fsize bsize cpg/sgs]
a: 30919680 196608 4.2BSD 0 0 0 # (Cyl. 96 - 15193*)
c: 31116288 0 unused 0 0 # (Cyl. 0 - 15193*)
d: 31116288 0 unused 0 0 # (Cyl. 0 - 15193*)
e: 163840 32768 MSDOS # (Cyl. 16 - 95)

Y procedo a montar la partición a, que es la de netbsd

mount /dev/sd0a /mnt

Como curiosidad ya yo había arrancado previamente el sistema, así que quería cerciorarme la IP (lo sé, nmap, pero estaba vago).

grep -a dhcpcd /mnt/var/log/messages
Dec 17 17:34:56 armv7 dhcpcd[594]: emac0: carrier acquired
Dec 17 17:34:56 armv7 dhcpcd[594]: emac0: IAID 43:10:ea:5c
Dec 17 17:34:56 armv7 dhcpcd[594]: emac0: soliciting a DHCP lease
Dec 17 17:34:57 armv7 dhcpcd[594]: emac0: soliciting an IPv6 router
Dec 17 17:34:57 armv7 dhcpcd[594]: emac0: Router Advertisement from fe80::3535:c60e:3361:5bdb
Dec 17 17:34:58 armv7 dhcpcd[594]: emac0: offered 192.168.1.53 from 192.168.1.1
Dec 17 17:35:04 armv7 dhcpcd[594]: emac0: leased 192.168.1.53 for 86400 seconds
Dec 17 17:35:04 armv7 dhcpcd[594]: emac0: adding route to 192.168.1.0/24
Dec 17 17:35:04 armv7 dhcpcd[594]: emac0: adding default route via 192.168.1.1

Vamos a la clave, como puedes ver, el archivo master.passwd tiene la clave vacía:

cd /mnt
cat etc/master.passwd
root::0:0::0:0:Charlie &:/root:/bin/sh

Así que procedí a generar una:

pwhash
M1SuperC1av3*
$argon2id$v=19$m=1024,t=15,p=1$DZ0JGXakfZXsG8ZO$X1jAVJAvokAu9RVjylWj3/fQwSfR4fWGsXr+RhDXHGo

Copié el hash que me dió pwhash para la clave que ingresé, y lo puse en /mnt/etc/master.passwd:

vim etc/master.passwd
egrep root etc/master.passwd
root:$argon2id$v=19$m=1024,t=15,p=1$DZ0JGXakfZXsG8ZO$X1jAVJAvokAu9RVjylWj3/fQwSfR4fWGsXr+RhDXHGo:0:0::0:0:Charlie &:/root:/bin/sh

Y como netbsd usa archivos binarios para las claves, le reconstruí el archivo

pwd_mkdb -d /mnt /mnt/etc/master.passwd

No te olvides poner PermitRootLogin yes en /mnt/etc/sshd/sshd_config para que te permita entrar por ssh con clave. Por supuesto, esto luego lo cambiarás para ingresar con clave pública/privada.

Desmonté la flash y listo! Pude ingresar como root

umount /mnt