Manoj Ampalam 8bb672aa4d
Optimized group membership resolution (#327)
Current group membership resolution though very effective, is very slow. In a typical domain joined enterprise machine, adding a simple entry like the following in sshd_config
AllowGroups administrators
will incur a long delay in remote session establishment as sshd tried to pull all groups associated with the domain user.

Changes in this PR optimize the general case scenarios where no wild cards are in use. Specifically rules like this are processed promptly:

AllowGroups group1, group2, group3 //with no wild cards
Match Group group1 //single group with no negation and wild cards

Optimization is done by resolve the groupname in rule immediately to SID and checking its membership against user token. Enumerating the entire group membership is done on a lazy on-demand basis.

Beyond the optimization, there are 2 functional changes

- removed domain prefix for builtin groups
- removed domain prefix'ed versions of local groups since we are strictly following the convention that local principals shouldn't have any domain qualification.
2018-07-03 10:15:07 -07:00
2018-01-23 16:34:53 +11:00
2016-09-22 03:14:59 +10:00
2016-08-03 15:38:43 +10:00
2017-05-31 10:50:33 +10:00
2017-06-24 16:56:11 +10:00
2018-01-23 16:40:29 +11:00
2017-05-31 10:50:33 +10:00
2015-10-25 11:42:04 +11:00
2016-05-19 17:48:34 +10:00
2016-08-14 11:19:14 +10:00
2018-03-26 13:24:41 +11:00
2018-04-02 13:15:17 -07:00
2015-01-09 00:17:12 +11:00
2017-10-20 12:58:35 +11:00
2017-10-20 12:58:35 +11:00
2017-05-01 10:05:02 +10:00
2016-12-19 14:46:28 -08:00
2017-05-01 10:05:02 +10:00
2016-10-21 06:55:58 +11:00
2016-03-08 06:20:35 +11:00
2016-03-08 06:20:35 +11:00
2016-08-29 11:20:28 +10:00
2017-09-22 09:14:53 +10:00
2016-08-09 09:06:52 +10:00
2017-05-08 09:21:00 +10:00
2017-10-23 16:14:30 +11:00
2018-01-24 12:20:44 +11:00
2018-02-08 09:26:27 +11:00
2016-05-02 20:39:32 +10:00
2017-05-10 11:41:21 +10:00
2017-05-10 11:41:21 +10:00
2017-05-10 11:41:21 +10:00
2017-06-01 14:53:33 +10:00
2017-06-01 14:53:33 +10:00
2015-02-17 09:32:31 +11:00
2016-09-12 13:46:29 +10:00
2017-06-24 16:56:11 +10:00
2018-01-23 16:35:07 +11:00
2015-03-27 12:00:47 +11:00
2015-02-17 09:32:31 +11:00
2018-02-15 22:28:00 +11:00
2018-02-08 09:26:27 +11:00
2017-05-31 10:50:05 +10:00
2016-05-02 20:35:04 +10:00
2017-12-19 15:21:37 +11:00
2017-10-20 12:58:18 +11:00
2016-05-02 20:39:32 +10:00
2018-02-08 09:26:27 +11:00
2018-02-08 09:26:27 +11:00
2015-01-20 09:19:39 +11:00
2018-02-08 09:26:27 +11:00
2018-02-08 09:26:27 +11:00
2015-01-20 09:19:39 +11:00
2018-02-08 09:26:27 +11:00
2018-02-08 09:26:27 +11:00
2017-12-19 15:21:37 +11:00
2017-12-19 15:21:37 +11:00
2017-12-19 15:21:37 +11:00
2016-01-07 20:13:32 +11:00
2017-05-01 10:05:04 +10:00
2017-05-17 11:25:22 +10:00
2017-05-17 11:25:22 +10:00
2017-05-10 11:41:21 +10:00
2016-07-08 13:50:03 +10:00
2018-02-26 16:24:23 +11:00
2017-03-10 15:35:40 +11:00
2017-02-04 10:08:15 +11:00
2017-12-07 11:40:38 +11:00
2017-12-12 10:32:04 +11:00
2016-03-04 15:12:17 +11:00
2016-09-29 03:11:32 +10:00
2015-01-15 21:39:14 +11:00
2015-01-15 21:39:14 +11:00
2017-09-22 09:14:53 +10:00
2017-09-12 17:37:03 +10:00
2017-10-20 12:58:35 +11:00
2017-10-20 12:58:35 +11:00
2015-07-15 15:36:21 +10:00
2017-12-19 15:21:37 +11:00
2017-12-12 10:32:04 +11:00
2018-05-11 14:45:20 -07:00
2016-12-19 14:46:28 -08:00
2015-01-15 02:22:18 +11:00
2017-10-01 10:32:25 +11:00
2017-11-03 16:20:41 +11:00
2016-05-04 00:55:21 +10:00
2015-01-30 12:17:07 +11:00
2015-07-17 13:36:29 +10:00
2018-02-15 22:28:14 +11:00
2015-03-23 17:08:12 +11:00
2016-09-12 13:46:29 +10:00
2018-05-20 19:06:36 -07:00
2017-10-25 12:26:21 +11:00
2017-09-12 17:37:02 +10:00
2017-09-12 17:37:02 +10:00
2017-06-10 16:40:11 +10:00
2015-01-15 02:22:18 +11:00
2015-01-15 02:22:18 +11:00
2016-02-16 10:44:00 +11:00
2014-12-11 19:17:24 +11:00
2016-05-19 17:48:34 +10:00
2017-05-01 09:42:37 +10:00
2015-02-24 06:30:29 +11:00
2017-05-08 09:21:00 +10:00
2017-09-04 09:38:57 +10:00
2016-11-30 19:44:25 +11:00
2018-02-08 09:26:27 +11:00
2018-02-08 09:26:27 +11:00
2016-04-21 16:30:11 +10:00
2017-06-24 16:56:11 +10:00
2016-02-18 09:24:40 +11:00
2018-02-07 07:50:46 +11:00
2018-01-23 16:31:55 +11:00
2018-02-08 09:26:27 +11:00
2015-01-15 21:39:14 +11:00
2017-05-08 09:21:22 +10:00
2017-06-01 14:55:23 +10:00
2016-01-13 10:48:11 +11:00
2016-05-02 20:35:04 +10:00
2017-06-07 11:31:15 +10:00
2017-09-12 17:37:02 +10:00
2018-02-10 20:26:40 +11:00
2018-03-14 18:55:33 +11:00
2017-09-12 17:37:02 +10:00
2017-09-12 17:37:02 +10:00
2016-01-07 20:13:31 +11:00
2018-02-15 20:04:02 +11:00
2016-11-29 16:51:27 +11:00
2017-03-24 12:35:52 -07:00
2016-09-29 03:19:23 +10:00
2017-05-01 10:05:04 +10:00
2018-02-09 20:00:18 +11:00
2017-12-19 15:17:38 +11:00
2017-06-01 14:55:22 +10:00
2015-04-29 18:15:24 +10:00
2017-06-01 14:55:22 +10:00
2017-06-01 14:55:22 +10:00
2018-03-05 10:22:32 +11:00

See https://www.openssh.com/releasenotes.html#7.6p1 for the release notes.

Please read https://www.openssh.com/report.html for bug reporting
instructions and note that we do not use Github for bug reporting or
patch/pull-request management.

- A Japanese translation of this document and of the release notes is
- available at https://www.unixuser.org/~haruyama/security/openssh/index.html
- Thanks to HARUYAMA Seigo <haruyama@unixuser.org>

This is the port of OpenBSD's excellent OpenSSH[0] to Linux and other
Unices.

OpenSSH is based on the last free version of Tatu Ylonen's sample
implementation with all patent-encumbered algorithms removed (to
external libraries), all known security bugs fixed, new features
reintroduced and many other clean-ups.  OpenSSH has been created by
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt,
and Dug Song. It has a homepage at https://www.openssh.com/

This port consists of the re-introduction of autoconf support, PAM
support, EGD[1]/PRNGD[2] support and replacements for OpenBSD library
functions that are (regrettably) absent from other unices. This port
has been best tested on AIX, Cygwin, HP-UX, Linux, MacOS/X,
NetBSD, OpenBSD, OpenServer, Solaris and UnixWare.

This version actively tracks changes in the OpenBSD CVS repository.

The PAM support is now more functional than the popular packages of
commercial ssh-1.2.x. It checks "account" and "session" modules for
all logins, not just when using password authentication.

OpenSSH depends on Zlib[3], OpenSSL[4], and optionally PAM[5] and
libedit[6]

There is now several mailing lists for this port of OpenSSH. Please
refer to https://www.openssh.com/list.html for details on how to join.

Please send bug reports and patches to the mailing list
openssh-unix-dev@mindrot.org. The list is open to posting by unsubscribed
users.  Code contribution are welcomed, but please follow the OpenBSD
style guidelines[7].

Please refer to the INSTALL document for information on how to install
OpenSSH on your system.

Damien Miller <djm@mindrot.org>

Miscellania -

This version of OpenSSH is based upon code retrieved from the OpenBSD
CVS repository which in turn was based on the last free sample
implementation released by Tatu Ylonen.

References -

[0] https://www.openssh.com/
[1] http://www.lothar.com/tech/crypto/
[2] http://prngd.sourceforge.net/
[3] https://www.zlib.net/
[4] https://www.openssl.org/
[5] https://www.openpam.org
    https://www.kernel.org/pub/linux/libs/pam/
    (PAM also is standard on Solaris and HP-UX 11)
[6] https://thrysoee.dk/editline/ (portable version)
[7] https://man.openbsd.org/style.9
Description
Portable OpenSSH, all Win32-OpenSSH releases and wiki are managed at https://github.com/powershell/Win32-OpenSSH
Readme 87 MiB
Languages
C 78.3%
Shell 6.7%
PowerShell 5.3%
Roff 4.9%
M4 2.4%
Other 2.4%