Dropbear es un servidor y cliente SSH ligero y pequeño que puede reemplazar a OpenSSH en cualquier plataforma POSIX como GNU/Linux, *BSD, Cygwin… Dropbear es software libre ya que es liberado bajo licencias estilo MIT.
Características
- Bajo consumo de memoria, lo que lo hace ideal para sistemas que requieran un consumo mínimo de recursos como los sistemas embebidos.
- Redireccionado de sesiones X11 (Servidor gráfico para sistemas tipo UNIX) y redireccionado de «authentication-agent» para clientes OpenSSH.
- Compatible con el formato del fichero de autenticación de llave pública: ~/.ssh/authorized_keys (OpenSSH).
- Redireccionado de puertos locales y remotos (tunneling).
- Otras
1. Instalar
Fedora
$ sudo dnf -y install dropbear
CentOS
Instalar definición del repositorio EPEL
$ sudo yum -y install epel-release
Instalar dropbear
$ yum -y install dropbear
Alpine
$ sudo apk add dropbear
Debian/Ubuntu/Devuan
$ sudo apt-get -y install dropbear
Android
Antes de instalar dropbear en Android debe instalar Termux para ello vea el siguiente video: Termux – emulador de terminal para Android
Instalar dropbear
$ apt install dropbear
2. Detener el servicio OpenSSH
Antes de iniciar el servicio dropbear asegúrese de detener el servicio sshd.
Distribuciones basadas en systemd: Fedora, CentOS, Debian, Ubuntu
$ sudo bash -c 'systemctl stop sshd && systemctl disable sshd'
Distribuciones basadas en OpenRC: Alpine
$ sudo bash -c 'rc-service sshd stop && rc-update del sshd'
Distribuciones basadas en sysvinit: Devuan
$ sudo bash -c 'service sshd stop && update-rc.d sshd disable'
Android
Para Android no es necesario detener el servivio SSH pues este no se instala por defecto.
3. Iniciar el servicio dropbear
Distribuciones basadas en systemd: Fedora, CentOS, Debian, Ubuntu
$ sudo systemctl start dropbear
Distribuciones basadas en OpenRC: Alpine
$ sudo rc-service dropbear start
Distribuciones basadas en sysvinit: Devuan
$ sudo service dropbear start
Android
Iniciamos dropbear en primer plano (foreground), por defecto dropbear va estar escuchando en el puerto 8022
$ dropbear -F
4. Iniciar el servicio dropbear con el sistema operativo
Distribuciones basadas en systemd: Fedora, CentOS, Debian, Ubuntu
$ sudo systemctl enable dropbear
Distribuciones basadas en OpenRC: Alpine
$ sudo rc-update add dropbear
Distribuciones basadas en sysvinit: Devuan
$ sudo update-rc.d sshd enable
Android
No es recomendable tener corriendo permanentemente un servidor SSH en Android por razones de seguridad y rendimiento no obstante puede lograrlo instalando Termux:Boot
5. Conectarse al servidor dropbear
Para conectarse al servidor dropbear puede usar el cliente ssh (OpenSSH) o la herramienta dbclient. La herramienta dbclient forma parte del paquete dropbear. Para Android la forma recomendada de conectarse es usando llaves pública y privada ya que no se tiene la contraseña del usuario en cuestión, para más detalles vea el siguiente video:
Cómo instalar un servidor SSH en Android.
Usando usuario y contraseña
$ ssh usuario@miservidor.midominio $ dbclient usuario@miservidor.midominio
Usando llaves pública y privada
Usando el cliente ssh
Para conectarse al servidor dropbear usando el cliente ssh debe usar las llaves públicas y privadas generadas por ssh-keygen. En el caso de Android agregue la opción -p 8022
a los comandos: ssh-copy-id
, ssh
, dbclient
1. Generar llaves públicas y privadas
$ ssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/sedlav/.ssh/id_ecdsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sedlav/.ssh/id_ecdsa. Your public key has been saved in /home/sedlav/.ssh/id_ecdsa.pub. The key fingerprint is: SHA256:m+Cg8yFD07sWN05oFHI6SXJsSXJe2nGYUtMalQFn2og sedlav@librebyte.net The key's randomart image is: +---[ECDSA 256]---+ |.ooo***o | |.+O=*Xo | | =E*++. | | +.o | | ooo.. S | | . o+++. o | | =.o=..o | | =.o. | | .o | +----[SHA256]-----+
2. Copiar la llave pública al servidor dropbear
$ ssh-copy-id -i .ssh/id_ecdsa.pub sedlav@dropbearserver /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_ecdsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys sedlav@dropbearserver's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'sedlav@dropbearserver'" and check to make sure that only the key(s) you wanted were added.
3. Conectarse al servidor dropbear
$ ssh sedlav@dropbearserver
Usando dbclient
Para conectarse al servidor dropbear usando dbclient debe usar las llaves públicas y privadas generadas por dropbearkey
$ dropbearkey -t ecdsa -f .ssh/id_dropbear_ecdsa | grep "^ecdsa" > .ssh/id_dropbear_ecdsa.pub Generating key, this may take a while...
2. Copiar la llave pública al servidor dropbear
$ cat .ssh/id_dropbear_ecdsa.pub | dbclient sedlav@dropbearserver 'cat - >> .ssh/authorized_keys' sedlav@dropbearserver's password:
3. Conectarse al servidor dropbear
$ dbclient -i .ssh/id_dropbear_ecdsa sedlav@dropbearserver
Nótese que los permisos del DIR .ssh deben ser 700 y del fichero authorized_keys: 600 o no podrá conectarse al servidor dropbear.