Go to file
Matt Johnston 51a74b4799 - added circular buffering for channels
- added stderr support for the client
- cleaned up a bunch of "unused" warnings, duplicated header definitions
- added exit-status support for the client

--HG--
extra : convert_revision : 5bdf806d8b440c87f7235414662f4189195618f4
2004-08-26 13:16:40 +00:00
debian Remove obselete documentation 2004-08-19 15:27:47 +00:00
agentfwd.h Mostly done with the listener changeover 2004-06-03 17:22:48 +00:00
algo.h snapshot of stuff 2004-07-26 02:44:20 +00:00
atomicio.c get rid of the substitution... We want a fixed identifier 2004-07-30 11:27:52 +00:00
atomicio.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
auth.h - client pubkey auth works 2004-08-06 16:18:01 +00:00
bignum.c Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
bignum.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
buffer.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
buffer.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
CHANGES merge of 00b67a11e33c3ed390556805ed6d1078528bee70 2004-09-04 14:19:17 +00:00
channel.h - added circular buffering for channels 2004-08-26 13:16:40 +00:00
chansession.h - added circular buffering for channels 2004-08-26 13:16:40 +00:00
circbuffer.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
circbuffer.h - added circular buffering for channels 2004-08-26 13:16:40 +00:00
cli-algo.c snapshot of stuff 2004-07-26 02:44:20 +00:00
cli-auth.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
cli-authpasswd.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
cli-authpubkey.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
cli-channel.c Nasty. 2004-08-24 18:12:18 +00:00
cli-chansession.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
cli-kex.c Fix if the first write fails 2004-08-24 07:22:36 +00:00
cli-main.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
cli-runopts.c Fix for "-l" scp option 2004-08-24 05:05:48 +00:00
cli-service.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
cli-session.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
cli-tcpfwd.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
common-algo.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
common-channel.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
common-chansession.c Chantype handling is sorted 2004-06-02 04:59:49 +00:00
common-kex.c default initialisers for mp_ints 2004-08-17 10:20:20 +00:00
common-runopts.c - client pubkey auth works 2004-08-06 16:18:01 +00:00
common-session.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
compat.c Small fixes 2004-08-17 10:40:31 +00:00
compat.h License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
config.guess Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
config.sub Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
configure.in Merging in the changes from 0.41-0.43 main Dropbear tree 2004-08-12 16:41:58 +00:00
dbmulti.c Small fixes 2004-08-17 10:40:31 +00:00
dbutil.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
dbutil.h DEBUG_TRACE now only triggers with -v on the cmdline 2004-08-18 15:48:25 +00:00
debug.h Nasty. 2004-08-24 18:12:18 +00:00
dropbearconvert.c DEBUG_TRACE now only triggers with -v on the cmdline 2004-08-18 15:48:25 +00:00
dropbearkey.c DEBUG_TRACE now only triggers with -v on the cmdline 2004-08-18 15:48:25 +00:00
dss.c default initialisers for mp_ints 2004-08-17 10:20:20 +00:00
dss.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
fake-rfc2553.c fake-rfc stuff 2004-08-12 14:39:17 +00:00
fake-rfc2553.h fake-rfc stuff 2004-08-12 14:39:17 +00:00
filelist.txt filelist.txt 2004-08-14 18:06:28 +00:00
gendss.c merge of 5c31199418631253a3d311fe3b1ff87351e1c9ca 2004-08-24 04:07:41 +00:00
gendss.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
genrsa.c default initialisers for mp_ints 2004-08-17 10:20:20 +00:00
genrsa.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
includes.h - added circular buffering for channels 2004-08-26 13:16:40 +00:00
INSTALL Some doc changes 2004-08-13 10:58:51 +00:00
install-sh Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
kex.h Progressing client support 2004-07-27 16:30:46 +00:00
keyimport.c Some small fixes for unused vars, and old messages 2004-08-17 11:14:13 +00:00
keyimport.h License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
LICENSE License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
listener.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
listener.h License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
loginrec.c get rid of the substitution... We want a fixed identifier 2004-07-30 11:27:52 +00:00
loginrec.h get rid of the substitution... We want a fixed identifier 2004-07-30 11:27:52 +00:00
Makefile.in Nasty. 2004-08-24 18:12:18 +00:00
MULTI Some doc changes 2004-08-13 10:58:51 +00:00
options.h Default port is now set as a string 2004-08-24 04:12:08 +00:00
packet.c Merging in the changes from 0.41-0.43 main Dropbear tree 2004-08-12 16:41:58 +00:00
packet.h merge of abac2150ee4f4031a98016241fbd136d24fed127 2004-06-23 07:14:16 +00:00
process-packet.c Remove some unused commented-out code 2004-08-01 11:02:44 +00:00
progressmeter.c get rid of the substitution... We want a fixed identifier 2004-07-30 11:27:52 +00:00
progressmeter.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
queue.c Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
queue.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
random.c Merging in the changes from 0.41-0.43 main Dropbear tree 2004-08-12 16:41:58 +00:00
random.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
README merge of 00b67a11e33c3ed390556805ed6d1078528bee70 2004-09-04 14:19:17 +00:00
rsa.c default initialisers for mp_ints 2004-08-17 10:20:20 +00:00
rsa.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
runopts.h Change the way we load keys/ports so we don't print error messages into our 2004-08-23 05:27:34 +00:00
scp.c Fix for "-l" scp option 2004-08-24 05:05:48 +00:00
scpmisc.c get rid of the substitution... We want a fixed identifier 2004-07-30 11:27:52 +00:00
scpmisc.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
service.h Client mostly works up to password auth 2004-07-28 16:44:16 +00:00
session.h - added circular buffering for channels 2004-08-26 13:16:40 +00:00
signkey.c Nasty. 2004-08-24 18:12:18 +00:00
signkey.h - Hostkey checking is mostly there, just aren't appending yet. 2004-08-08 16:17:05 +00:00
SMALL Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
ssh.h merge of abac2150ee4f4031a98016241fbd136d24fed127 2004-06-23 07:14:16 +00:00
sshpty.c get rid of the substitution... We want a fixed identifier 2004-07-30 11:27:52 +00:00
sshpty.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
svr-agentfwd.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
svr-algo.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
svr-auth.c Auth doesn't timeout after 5 minutes. 2004-08-18 09:14:43 +00:00
svr-authpasswd.c Merging in the changes from 0.41-0.43 main Dropbear tree 2004-08-12 16:41:58 +00:00
svr-authpubkey.c Merging in the changes from 0.41-0.43 main Dropbear tree 2004-08-12 16:41:58 +00:00
svr-chansession.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
svr-kex.c default initialisers for mp_ints 2004-08-17 10:20:20 +00:00
svr-main.c - added circular buffering for channels 2004-08-26 13:16:40 +00:00
svr-runopts.c Default port is now set as a string 2004-08-24 04:12:08 +00:00
svr-service.c Progressing client support 2004-07-27 16:30:46 +00:00
svr-session.c Fix for printing out things with inetd mode when we have DEBUG_TRACE 2004-08-22 09:23:11 +00:00
svr-tcpfwd.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
svr-x11fwd.c Don't try to remove non-eixtant listeners 2004-08-18 16:31:05 +00:00
tcp-accept.c License boilerplate etc, add Mihnea as an author to some of the files 2004-08-14 17:54:20 +00:00
tcpfwd.h - added circular buffering for channels 2004-08-26 13:16:40 +00:00
termcodes.c #ifdef for PENDIN 2004-08-17 10:29:04 +00:00
termcodes.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
TODO - added circular buffering for channels 2004-08-26 13:16:40 +00:00
x11fwd.h Fixed stupid agentfwd error (using the listening FD, not the accepted on. gah) 2004-06-03 18:08:34 +00:00

This is Dropbear, a smallish SSH 2 server and client.

INSTALL has compilation instructions.

MULTI has instructions on making a multi-purpose binary (ie a single binary
which performs multiple tasks, to save disk space)

SMALL has some tips on creating small binaries.

See TODO for a few of the things I know need looking at, and please contact
me if you have any questions/bugs found/features/ideas/comments etc :)

Matt Johnston
matt@ucc.asn.au


In the absence of detailed documentation, some notes follow:
============================================================================

Server public key auth:

You can use ~/.ssh/authorized_keys in the same way as with OpenSSH, just put
the key entries in that file. They should be of the form:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAwVa6M6cGVmUcLl2cFzkxEoJd06Ub4bVDsYrWvXhvUV+ZAM9uGuewZBDoAqNKJxoIn0Hyd0Nk/yU99UVv6NWV/5YSHtnf35LKds56j7cuzoQpFIdjNwdxAN0PCET/MG8qyskG/2IE2DPNIaJ3Wy+Ws4IZEgdJgPlTYUBWWtCWOGc= someone@hostname

You must make sure that ~/.ssh, and the key file, are only writable by the
user.

NOTE: Dropbear ignores authorized_keys options such as those described in the
OpenSSH sshd manpage, and will not allow a login for these keys. 

============================================================================

Client public key auth:

Dropbear can do public key auth as a client, but you will have to convert
OpenSSH style keys to Dropbear format, or use dropbearkey to create them.

If you have an OpenSSH-style private key ~/.ssh/id_rsa, you need to do:

dropbearconvert openssh dropbear ~/.ssh/id_rsa  ~/.ssh/id_rsa.db
dbclient -i ~/.ssh/id_rsa.db <hostname>

Currently encrypted keys aren't supported, neither is agent forwarding. At some
stage both hopefully will be.

============================================================================

If you want to get the public-key portion of a Dropbear private key, look at
dropbearkey's '-y' option.

============================================================================

To run the server, you need to generate server keys, this is one-off:
./dropbearkey -t rsa -f dropbear_rsa_host_key
./dropbearkey -t dss -f dropbear_dss_host_key

or alternatively convert OpenSSH keys to Dropbear:
./dropbearconvert openssh dropbear /etc/ssh/ssh_host_dsa_key dropbear_dss_host_key

============================================================================

If the server is run as non-root, you most likely won't be able to allocate a
pty, and you cannot login as any user other than that running the daemon
(obviously). Shadow passwords will also be unusable as non-root.

============================================================================

The Dropbear distribution includes a standalone version of OpenSSH's scp
program. You can compile it with "make scp", you may want to change the path
of the ssh binary, specified near the top of the scp.c file. By default
the progress meter isn't compiled in to save space, you can enable it by 
adding 'SCPPROGRESS=1' to the make commandline.