summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/monitor.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* bye, bye xfree(); ok markus@djm2013-05-171-65/+60
|
* Add RekeyLimit to sshd with the same syntax as the client allowing rekeyingdtucker2013-05-161-1/+5
| | | | based on traffic volume or time. ok djm@, help & ok jmc@ for the man page.
* add submethod support to AuthenticationMethods; ok and freedback djm@markus2013-03-071-5/+6
|
* reconstruct the original username that was sent by the client, which maydjm2013-03-071-11/+19
| | | | | | have included a style (e.g. "root:skey") when checking public key signatures. Fixes public key and hostbased auth when the client specified a style; ok markus@
* drain the log messages after receiving the keystate from the unprivmarkus2012-12-111-5/+5
| | | | child. otherwise it might block while sending. ok djm@
* Fixes logging of partial authentication when privsep is enableddjm2012-12-021-5/+11
| | | | | | | | | | | | | Previously, we recorded "Failed xxx" since we reset authenticated before calling auth_log() in auth2.c. This adds an explcit "Partial" state. Add a "submethod" to auth_log() to report which submethod is used for keyboard-interactive. Fix multiple authentication when one of the methods is keyboard-interactive. ok markus@
* Support multiple required authentication via an AuthenticationMethodsdjm2012-11-041-4/+31
| | | | | | | option. This option lists one or more comma-separated lists of authentication method names. Successful completion of all the methods in any list is required for authentication to complete; feedback and ok markus@
* remove dead code following 'for (;;)' loops.dtucker2012-06-221-4/+1
| | | | From Steve.McClellan at radisys com, ok markus@
* memleak on error pathdjm2012-01-051-1/+2
|
* ignore EINTR errors from poll()djm2011-06-231-2/+5
|
* make the pre-auth privsep slave log via a socketpair shared with thedjm2011-06-171-15/+108
| | | | monitor rather than /var/empty/dev/log; ok dtucker@ deraadt@ markus@
* allow AuthorizedKeysFile to specify multiple files, separated by spaces.djm2011-05-231-2/+7
| | | | | | | | | Bring back authorized_keys2 as a default search path (to avoid breaking existing users of this file), but override this in sshd_config so it will be no longer used on fresh installs. Maybe in 2015 we can remove it entierly :) feedback and ok markus@ dtucker@
* use a macro to define which string options to copy between configsdjm2011-05-201-3/+10
| | | | | | | for Match. This avoids problems caused by forgetting to keep three code locations in perfect sync and ordering "this is at once beautiful and horrible" + ok dtucker@
* use FD_CLOEXEC consistently; patch from zion AT x96.orgdjm2011-05-151-2/+2
|
* ECDH/ECDSA compliance fix: these methods vary the hash function they usedjm2010-09-091-4/+4
| | | | | | | | | | | | | (SHA256/384/512) depending on the length of the curve in use. The previous code incorrectly used SHA256 in all cases. This fix will cause authentication failure when using 384 or 521-bit curve keys if one peer hasn't been upgraded and the other has. (256-bit curve keys work ok). In particular you may need to specify HostkeyAlgorithms when connecting to a server that has not been upgraded from an upgraded client. ok naddy@
* Implement Elliptic Curve Cryptography modes for key exchange (ECDH) anddjm2010-08-311-1/+2
| | | | | | | | | | | | | | | | | host/user keys (ECDSA) as specified by RFC5656. ECDH and ECDSA offer better performance than plain DH and DSA at the same equivalent symmetric key length, as well as much shorter keys. Only the mandatory sections of RFC5656 are implemented, specifically the three REQUIRED curves nistp256, nistp384 and nistp521 and only ECDH and ECDSA. Point compression (optional in RFC5656 is NOT implemented). Certificate host and user keys using the new ECDSA key types are supported. Note that this code has not been tested for interoperability and may be subject to change. feedback and ok markus@
* s/timing_safe_cmp/timingsafe_bcmp/gdjm2010-07-131-6/+6
|
* implement a timing_safe_cmp() function to compare memory without leakingdjm2010-07-131-8/+8
| | | | | | timing information by short-circuiting like memcmp() and use it for some of the more sensitive comparisons (though nothing high-value was readily attackable anyway); "looks ok" markus@
* Hold authentication debug messages until after successful authentication.dtucker2010-03-071-17/+1
| | | | | Fixes an info leak of environment variables specified in authorized_keys, reported by Jacob Appelbaum. ok djm@
* Add support for certificate key types for users and hosts.djm2010-02-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | OpenSSH certificate key types are not X.509 certificates, but a much simpler format that encodes a public key, identity information and some validity constraints and signs it with a CA key. CA keys are regular SSH keys. This certificate style avoids the attack surface of X.509 certificates and is very easy to deploy. Certified host keys allow automatic acceptance of new host keys when a CA certificate is marked as trusted in ~/.ssh/known_hosts. see VERIFYING HOST KEYS in ssh(1) for details. Certified user keys allow authentication of users when the signing CA key is marked as trusted in authorized_keys. See "AUTHORIZED_KEYS FILE FORMAT" in sshd(8) for details. Certificates are minted using ssh-keygen(1), documentation is in the "CERTIFICATES" section of that manpage. Documentation on the format of certificates is in the file PROTOCOL.certkeys feedback and ok markus@
* Fix warnings found by chl@ and djm@ and change roaming_atomicio'sandreas2009-06-121-1/+2
| | | | | return type to match atomicio's Diff from djm@, ok markus@
* Keep track of number of bytes read and written. Needed for upcomingandreas2009-05-281-1/+13
| | | | | changes. Most code from Martin Forssen, maf at appgate dot com. ok markus@
* Put the globals in packet.c into a struct and don't access it directlyandreas2009-05-251-6/+6
| | | | | from other files. No functional changes. ok markus@ djm@
* some paranoia: check that the serialised key is really KEY_RSA beforedjm2009-02-121-2/+4
| | | | diddling its internals
* Add support for an experimental zero-knowledge password authenticationdjm2008-11-041-1/+226
| | | | | | | | | | | | | | | | method using the J-PAKE protocol described in F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling", 16th Workshop on Security Protocols, Cambridge, April 2008. This method allows password-based authentication without exposing the password to the server. Instead, the client and server exchange cryptographic proofs to demonstrate of knowledge of the password while revealing nothing useful to an attacker or compromised endpoint. This is experimental, work-in-progress code and is presently compiled-time disabled (turn on -DJPAKE in Makefile.inc). "just commit it. It isn't too intrusive." deraadt@
* sync v1 and v2 traffic accounting; add it to sshd, too; ok djm@, dtucker@markus2008-07-101-4/+6
|
* Make debug a little clearer. ok djm@dtucker2008-07-041-2/+2
|
* Clear key options in the monitor on failed authentication, preventsdtucker2008-06-131-1/+5
| | | | | | applying additional restrictions to non-pubkey authentications in the case where pubkey fails but another method subsequently succeeds. bz #1472, found by Colin Watson, ok markus@ djm@
* Make the maximum number of sessions run-time controllable viadjm2008-05-081-2/+2
| | | | | | | | | | | | | | | | | a sshd_config MaxSessions knob. This is useful for disabling login/shell/subsystem access while leaving port-forwarding working (MaxSessions 0), disabling connection multiplexing (MaxSessions 1) or simply increasing the number of allows multiplexed sessions. Because some bozos are sure to configure MaxSessions in excess of the number of available file descriptors in sshd (which, at peak, might be as many as 9*MaxSessions), audit sshd to ensure that it doesn't leak fds on error paths, and make it fail gracefully on out-of-fd conditions - sending channel errors instead of than exiting with fatal(). bz#1090; MaxSessions config bits and manpage from junyer AT gmail.com ok markus@
* Implement a channel success/failure status confirmation callbackdjm2008-05-081-1/+2
| | | | | | | | | | | | | mechanism. Each channel maintains a queue of callbacks, which will be drained in order (RFC4253 guarantees confirm messages are not reordered within an channel). Also includes a abandonment callback to clean up if a channel is closed without sending confirmation messages. This probably shouldn't happen in compliant implementations, but it could be abused to leak memory. ok markus@ (as part of a larger diff)
* Send config block back to slave for invalid users too so optionsdtucker2007-10-291-3/+3
| | | | | set by a Match block (eg Banner) behave the same for non-existent users. Found by and ok djm@
* unifdef -DBSD_AUTHdjm2007-09-211-65/+1
| | | | | | | unifdef -USKEY These options have been in use for some years; ok markus@ "no objection" millert@
* make file descriptor passing code return an error rather than call fatal()djm2007-09-041-3/+4
| | | | | when it encounters problems, and use this to make session multiplexing masters survive slaves failing to pass all stdio FDs; ok markus@
* pass received SIGINT from monitor to postauth child so it can cleandjm2007-05-171-1/+2
| | | | | up properly. bz#1196, patch from senthilkumar_sen AT hotpop.com; ok markus@
* Teach Match how handle config directives that are used before authentication.dtucker2007-02-191-1/+4
| | | | | | This allows configurations such as permitting password authentication from the local net only while requiring pubkey from offsite. ok djm@, man page bits ok jmc@
* correctly check for bad signatures in the monitor, otherwise the monitor andmarkus2006-11-071-4/+4
| | | | the unpriv process can get out of sync. with dtucker@, ok djm@, dtucker@
* Revert previous include file ordering change, for ssh to compile under gcc2miod2006-08-121-2/+2
| | | | | (or until openssl include files are cleaned of parameter names in function prototypes)
* "zlib.h" can be <zlib.h>; ok djm@ markus@stevesk2006-08-061-2/+2
|
* spacesstevesk2006-08-041-3/+3
|
* almost entirely get rid of the culture of ".h files that include .h files"deraadt2006-08-031-7/+10
| | | | | ok djm, sort of ok stevesk makes the pain stop in one easy step
* move #include <stdlib.h> out of includes.hstevesk2006-07-261-1/+2
|
* move #include <sys/param.h> out of includes.hstevesk2006-07-261-1/+2
|
* move #include <string.h> out of includes.hstevesk2006-07-221-1/+2
|
* move #include <errno.h> out of includes.h; ok markus@stevesk2006-07-111-1/+2
|
* move #include <fcntl.h> out of includes.hstevesk2006-07-091-1/+2
|
* missed these from last commit:stevesk2006-07-081-1/+2
| | | | move #include <sys/socket.h> out of includes.h
* move #include <pwd.h> out of includes.h; ok markus@stevesk2006-07-061-3/+4
|
* Prevent duplicate log messages when privsep=yes; ok djm@dtucker2006-03-301-4/+14
|
* Put $OpenBSD$ tags back (as comments) to replace the RCSID()s thatdjm2006-03-251-0/+1
| | | | Theo nuked - our scripts to sync -portable need them in the files
* introduce xcalloc() and xasprintf() failure-checked allocations functionsdjm2006-03-251-4/+2
| | | | | | | | | | and use them throughout openssh xcalloc is particularly important because malloc(nmemb * size) is a dangerous idiom (subject to integer overflow) and it is time for it to die feedback and ok deraadt@