Dropbear
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