Go to file
vincentto13 a0aa274981 Fix for issue successfull login of disabled user (#78)
This commit introduces fix for scenario:
1. Root login disabled on dropbear
2. PAM authentication model enabled

While login as root user, after prompt for password
user is being notified about login failrue, but
after second attempt of prompt for password within
same session, login becames succesfull.

Signed-off-by: Pawel Rapkiewicz <pawel.rapkiewicz@gmail.com>
2019-03-20 22:03:40 +08:00
debian bump debian changelog 2018-02-27 22:14:46 +08:00
libtomcrypt Attempt to fix m_free for libtomcrypt/libtommath 2018-03-02 00:02:06 +08:00
libtommath Don't read uninitialised value. 2018-03-05 16:50:24 +08:00
.gitignore ignore default_options_guard.h 2018-02-26 22:08:53 +08:00
.hgignore fuzz harness 2017-05-13 22:50:54 +08:00
.hgsigs Added signature for changeset 2f0c3f3361d3 2018-02-27 22:49:06 +08:00
.hgtags Added tag DROPBEAR_2018.76 for changeset 1c66ca4f3791 2018-02-27 22:48:42 +08:00
.travis.yml travis fuzz build clang++ 2018-03-04 17:17:37 +08:00
agentfwd.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
algo.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
atomicio.c upgrade atomicio 2016-11-15 14:56:25 +01:00
atomicio.h upgrade atomicio 2016-11-15 14:56:25 +01:00
auth.h - Add adaptive authentication failure delay 2018-11-05 23:36:34 +08:00
bignum.c add m_mp_free_multi, be more careful freeing when failing to load keys 2017-05-26 21:08:43 +08:00
bignum.h add m_mp_free_multi, be more careful freeing when failing to load keys 2017-05-26 21:08:43 +08:00
buffer.c merge from main 2018-02-17 19:29:51 +08:00
buffer.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
CHANGES mention localoptions.h being build directory, fix underscore in CHANGES 2018-03-01 22:12:30 +08:00
channel.h Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
chansession.h make signal flags volatile, simplify handling 2018-02-14 23:06:01 +08:00
circbuffer.c Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
circbuffer.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
cli-agentfwd.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
cli-auth.c rename some options and move some to sysoptions.h 2018-02-18 00:29:17 +08:00
cli-authinteract.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
cli-authpasswd.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
cli-authpubkey.c Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
cli-channel.c Rearranged some more bits, marked some areas that need work. 2006-10-02 16:34:06 +00:00
cli-chansession.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
cli-kex.c Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
cli-main.c Add dbclient '-J &fd' option for a file descriptor 2018-02-18 15:12:15 +08:00
cli-runopts.c options: Complete the transition to numeric toggles (`#if') 2018-02-16 23:13:47 +08:00
cli-session.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
cli-tcpfwd.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
common-algo.c add curve25519-sha256 without @libssh.org 2018-02-20 19:35:26 +08:00
common-channel.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
common-chansession.c Chantype handling is sorted 2004-06-02 04:59:49 +00:00
common-kex.c avoid leak of ecdh public key 2018-03-08 23:51:33 +08:00
common-runopts.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
common-session.c workaround memory sanitizer FD_ZERO false positives 2018-03-06 21:51:51 +08:00
compat.c Merge pull request #31 from bengardner/PATH_DEVNULL 2017-06-02 22:57:09 +08:00
compat.h fix empty C prototypes 2016-03-16 22:41:20 +08:00
config.guess another new config.guess 2013-06-10 2013-11-14 22:07:18 +08:00
config.sub Update to 2013-10-01 2013-12-03 21:36:12 +08:00
configure.ac Remove incorrect _POSIX_C_SOURCE 2018-11-06 07:25:53 +08:00
crypto_desc.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
crypto_desc.h fix empty C prototypes 2016-03-16 22:41:20 +08:00
curve25519-donna.c Update curve25519-donna to f7837adf95a2c2dcc36233cb02a1fb34081c0c4a 2017-06-24 11:53:32 +08:00
dbclient.1 Add dbclient '-J &fd' option for a file descriptor 2018-02-18 15:12:15 +08:00
dbhelpers.c some linting after fuzz merge (#60) 2018-03-03 11:06:45 +08:00
dbhelpers.h include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
dbmalloc.c Only use malloc wrapper if fuzzing 2018-03-01 23:46:24 +08:00
dbmalloc.h Attempt to fix m_free for libtomcrypt/libtommath 2018-03-02 00:02:06 +08:00
dbmulti.c allow specifying dropbearmulti command as an argument 2016-03-10 21:35:23 +08:00
dbrandom.c workaround memory sanitizer FD_ZERO false positives 2018-03-06 21:51:51 +08:00
dbrandom.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
dbutil.c - Add adaptive authentication failure delay 2018-11-05 23:36:34 +08:00
dbutil.h - Add adaptive authentication failure delay 2018-11-05 23:36:34 +08:00
debug.h merge from main 2018-02-17 19:29:51 +08:00
default_options.h mention localoptions.h being build directory, fix underscore in CHANGES 2018-03-01 22:12:30 +08:00
dh_groups.c Fix whitespace missed in merge 2016-03-18 20:43:22 +08:00
dh_groups.h Get rid of group15, move group16 to sha512. 2016-03-12 16:21:13 +08:00
dropbear.8 clarify that -r skips default hostkeys 2018-02-22 21:57:47 +08:00
dropbearconvert.1 Fix minor manpage formatting issues 2015-11-25 20:46:06 +08:00
dropbearconvert.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
dropbearkey.1 Fix minor manpage formatting issues 2015-11-25 20:46:06 +08:00
dropbearkey.c fix format 2017-08-12 20:53:52 +02:00
dss.c merge from main 2018-02-17 19:29:51 +08:00
dss.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
ecc.c include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
ecc.h include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
ecdsa.c include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
ecdsa.h It turns out you can't have a single-quote in an #error 2018-03-08 22:37:54 +08:00
fake-rfc2553.c - Update fake-rfc2553.{c,h} from OpenSSH 5.5p1 2010-07-21 13:53:23 +00:00
fake-rfc2553.h DROPBEAR_ prefix for include guards to avoid collisions 2015-02-24 20:43:01 +08:00
filelist.txt filelist.txt 2004-08-14 18:06:28 +00:00
fuzz-common.c Add kexdh and kexecdh fuzzers 2018-03-05 11:50:31 +08:00
fuzz-harness.c Disable wrapfds outside of fuzzed code 2018-03-08 23:22:53 +08:00
fuzz-hostkeys.c fuzz harness 2017-05-13 22:50:54 +08:00
fuzz-wrapfd.c workaround memory sanitizer FD_ZERO false positives 2018-03-06 21:51:51 +08:00
fuzz-wrapfd.h some linting after fuzz merge (#60) 2018-03-03 11:06:45 +08:00
fuzz.h Add kexdh and kexecdh fuzzers 2018-03-05 11:50:31 +08:00
fuzzer-kexdh.c Fix leaks in kex fuzzers 2018-03-09 23:16:37 +08:00
fuzzer-kexecdh.c Fix leaks in kex fuzzers 2018-03-09 23:16:37 +08:00
FUZZER-NOTES.md fix some links 2018-03-05 14:14:26 +08:00
fuzzer-preauth_nomaths.c add fuzzer-preauth_nomaths 2018-01-23 23:05:47 +08:00
fuzzer-preauth.c add fuzzer-preauth_nomaths 2018-01-23 23:05:47 +08:00
fuzzer-pubkey.c avoid leak of pubkey_options 2018-03-06 22:18:20 +08:00
fuzzer-verify.c Fix to be able to compile normal(ish) binaries with --enable-fuzz 2018-02-28 22:02:12 +08:00
fuzzers_test.sh add fuzzers to travis 2018-03-01 22:54:57 +08:00
gendss.c Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
gendss.h Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
genrsa.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
genrsa.h Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
gensignkey.c add configuration option for default RSA size. 2017-06-24 23:32:25 +08:00
gensignkey.h add configuration option for default RSA size. 2017-06-24 23:32:25 +08:00
ifndef_wrapper.sh avoid extended regex features to avoid caring about sed -r vs -E 2018-07-24 20:19:05 +08:00
includes.h Remove incorrect _POSIX_C_SOURCE 2018-11-06 07:25:53 +08:00
INSTALL mention localoptions.h being build directory, fix underscore in CHANGES 2018-03-01 22:12:30 +08:00
install-sh Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
kex.h merge from main 2018-02-17 19:29:51 +08:00
keyimport.c options: Complete the transition to numeric toggles (`#if') 2018-02-16 23:13:47 +08:00
keyimport.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
LICENSE Fix no-writev fallback 2015-05-02 22:47:25 +08:00
list.c include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
list.h fix empty C prototypes 2016-03-16 22:41:20 +08:00
listener.c Pointer parameter could be declared as pointing to const (callback) 2017-08-19 22:39:53 +02:00
listener.h Pointer parameter could be declared as pointing to const (callback) 2017-08-19 22:39:53 +02:00
loginrec.c loginrec close fd on error path 2018-02-17 12:16:18 +08:00
loginrec.h remove unused loginrec_set_addr() 2016-03-15 22:04:13 +08:00
ltc_prng.c include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
ltc_prng.h include config.h for options.h. don't need to include options.h when 2018-02-18 11:22:13 +08:00
Makefile.in fix some links 2018-03-05 14:14:26 +08:00
MULTI - Fix "inst_scp" target since there isn't a manpage 2013-10-09 22:24:39 +08:00
netio.c Remove some cluttering TRACE printouts 2018-11-14 22:52:04 +08:00
netio.h bind to port as well with -b 2018-01-26 00:28:25 +08:00
options.h mention localoptions.h being build directory, fix underscore in CHANGES 2018-03-01 22:12:30 +08:00
packet.c Merge writev #include fix 2018-08-26 22:26:42 +08:00
packet.h get rid of unused packet_type in encrypted write queue 2018-03-04 14:57:18 +08:00
process-packet.c fix empty C prototypes 2016-03-16 22:41:20 +08:00
progressmeter.c Update to scp from OpenSSH portable 4.3p2 2006-03-08 14:20:24 +00:00
progressmeter.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
queue.c Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
queue.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
README Add missing word to readme (#77) 2019-03-20 21:56:19 +08:00
release.sh release.sh reminds how to sign 2015-11-25 23:30:56 +08:00
rsa.c limit rsa->e size to 64 bits 2018-02-17 19:41:44 +08:00
rsa.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
runopts.h add guard HAVE_GETGROUPLIST 2018-02-27 21:49:10 +08:00
scp.c Convert #ifdef to #if, other build changes 2016-05-04 15:33:40 +02:00
scpmisc.c Use DROPBEAR_PATH_DEVNULL instead of undefined _PATH_DEVNULL 2016-05-25 09:52:23 -05:00
scpmisc.h upgrade atomicio 2016-11-15 14:56:25 +01:00
service.h fix empty C prototypes 2016-03-16 22:41:20 +08:00
session.h use a full prototype (#56) 2018-02-20 23:13:42 +08:00
signkey.c - #if not #ifdef for DROPBEAR_FUZZ 2018-02-28 21:40:08 +08:00
signkey.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00
SMALL 0.44 release changes 2005-01-02 17:08:27 +00:00
ssh.h propagate from branch 'au.asn.ucc.matt.dropbear' (head 0501e6f661b5415eb76f3b312d183c3adfbfb712) 2006-03-21 16:20:59 +00:00
sshpty.c ignore I_PUSH if it isn't defined, for Android from Reimar Döffinger 2013-03-19 20:12:19 +08:00
sshpty.h Makefile.in contains updated files required 2004-06-01 02:46:09 +00:00
svr-agentfwd.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
svr-auth.c - Add adaptive authentication failure delay 2018-11-05 23:36:34 +08:00
svr-authpam.c Fix for issue successfull login of disabled user (#78) 2019-03-20 22:03:40 +08:00
svr-authpasswd.c Wait to fail invalid usernames 2018-08-23 23:43:12 +08:00
svr-authpubkey.c Merge bugfix delay invalid users 2018-08-23 23:43:45 +08:00
svr-authpubkeyoptions.c fix leak in option handling 2018-03-07 22:14:36 +08:00
svr-chansession.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
svr-kex.c - #if not #ifdef for DROPBEAR_FUZZ 2018-02-28 21:40:08 +08:00
svr-main.c workaround memory sanitizer FD_ZERO false positives 2018-03-06 21:51:51 +08:00
svr-runopts.c Only advertise a single server ecdsa key when -R (generate as required) is 2018-03-08 22:25:33 +08:00
svr-service.c more linting (#58) 2018-02-26 21:31:15 +08:00
svr-session.c Fix to be able to compile normal(ish) binaries with --enable-fuzz 2018-02-28 22:02:12 +08:00
svr-tcpfwd.c add missing initializer (#71) 2019-01-07 23:09:45 +08:00
svr-x11fwd.c Split ChanType closehandler() and cleanup() so that dbclient doesn't 2018-11-14 22:57:56 +08:00
sysoptions.h Merge bugfix delay invalid users 2018-08-23 23:43:45 +08:00
tcp-accept.c FIx remote forward listeners 2018-09-07 23:02:20 +08:00
tcpfwd.h FIx remote forward listeners 2018-09-07 23:02:20 +08:00
termcodes.c termcodes: make VEOL2, VWERASE, VLNEXT, ECHOCTL, and ECHOKE optional 2016-05-25 10:03:53 -05:00
termcodes.h DROPBEAR_ prefix for include guards to avoid collisions 2015-02-24 20:43:01 +08:00
x11fwd.h Pointer parameter could be declared as pointing to const 2017-08-19 17:16:13 +02:00

This is Dropbear, a smallish SSH server and client.
https://matt.ucc.asn.au/dropbear/dropbear.html

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.

Please contact me if you have any questions/bugs found/features/ideas/comments etc :)
There is also a mailing list http://lists.ucc.gu.uwa.edu.au/mailman/listinfo/dropbear

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. Beware of editors that split the key into multiple lines.

Dropbear supports some options for authorized_keys entries, see the manpage.

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

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>

Dropbear does not support encrypted hostkeys though can connect to ssh-agent.

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

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
./dropbearkey -t ecdsa -f dropbear_ecdsa_host_key

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

You can also get Dropbear to create keys when the first connection is made -
this is preferable to generating keys when the system boots. Make sure 
/etc/dropbear/ exists and then pass '-R' to the dropbear server.

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

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 by _PATH_SSH_PROGRAM in options.h . By default
the progress meter isn't compiled in to save space, you can enable it by 
adding 'SCPPROGRESS=1' to the make commandline.