Dropbear

From RidgeRun Developer Wiki

Dropbear is a relatively small SSH server and client. It runs on a variety of POSIX-based platforms. Dropbear is particularly useful for "embedded" type Linux systems

Enabling dropbear

How to enable Dropbear server

1-Open sdk configuration system

$ make config

2- Enable Dropbear server:

-> File System Configuration
  -> Select target's file system software 
    [*] dropbear-0.52 (SSH Server)

3- When Dropbear is selected, scp and ssh are showed

-*- dropbear-0.52 (SSH Server)
[*]   Enable dbclient (SSH Client)
[*]   Enable scp

Starting dropbear server

To start server, run the following script:

/etc/init.d/dropbear start

When this script run, normally the public key is printed in the log.

Commands to use ssh

From host:

$ dbclient user@host

From target:

$ ssh user@host

Commands to use scp

From target or host:

$ scp <file> user@host:/<location>

Setting keys to get ssh connectivity without password requests

To enable this mode, add "-s" option at the start server command, it can be added in the devdir fs script or in the target fs directly.

To add this option in the devdir, open the file <DEVDIR>/fs/apps/dropbear.x.y/dropbear and add the option "-s" in the flag DROPBEAR_EXTRA_ARGS

DROPBEAR_EXTRA_ARGS=-s

After do that, rebuild and reinstall the application, then start the Dropbear server running the following script:

/etc/init.d/dropbear start 

The first time that this script run, the script prints in log the public key. If Dropbear was started at this point, the public key can be print it manually, this process must be explained in the next section.

To add this option in the target fs directly, repeat the same action in the script /etc/init.d/dropbear. After that, restart the application

/etc/init.d/dropbear restart 

How to get Dropbear public and private keys in target manually

The "dropbearkey" tool creates public and private keys or show the public key.

To create an pair of keys, run the following command:

$ dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key

The last command saves in /etc/dropbear/dropbear_rsa_host_key the private key, and prints the public key. To show only the public key in the required format, run the commmand:

$ dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key | grep ssh-rsa

How to set Dropbear public key in host

When the public key was generated by Dropbear in the target, it must be added in the correctly host file location.

The public key must added in the file

/home/<user>/.ssh/authorized_keys

The public key generated by Dropbear must have similar format to:

ssh-rsa AAAAB3NzaC1yc.................C1vSjw2Xcm9KU9mXJtKRj <user>@<host>

After to add the public key in the host, reinitialize the ssh server:

/etc/init.d/ssh restart

How to get OpenSSH public and private keys in host computer

The following command, creates two files in ~/.ssh/, one is named id_rsa and is the private key (It mustn't be touched) and other that is named id_rsa.pub, this file contain the public key, this content must be added in target location explained in the next section.

ssh-keygen -b 4096 -t rsa

How to set OpenSSH public key in target

The public key generated in host, must be added in the target file /home/<user>/.ssh/authorized_keys, It must have format similar to:

ssh-rsa AAAAB3NzaC1yc2EA ................... SVr8uIPvPCYwSsvq5yU= <user>@<host>


Set the permissions correctly

$ chmod go-w ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

After to do that, restart the Dropbear server using the following command:

/etc/init.d/dropbear restart

Commands to use ssh without password request

From host:

$ ssh user@host

From target:

$ dbclient user@host -i /etc/dropbear/dropbear_rsa_host_key

Commands to use scp without password request

Form host:

$ scp <file> user@host:/<location>

Form target:

$ scp <file> user@host:/<location> -i /etc/dropbear/dropbear_rsa_host_key


You can find more information about Dropbear in the site: http://www.nslu2-linux.org/wiki/HowTo/UseDropBearForRemoteAccess