[Bug 2398] New: AuthenticationMethods doesn't have default value (inconsistency) and it accept empty value

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Thu May 14 00:20:11 AEST 2015


https://bugzilla.mindrot.org/show_bug.cgi?id=2398

            Bug ID: 2398
           Summary: AuthenticationMethods doesn't have default value
                    (inconsistency) and it accept empty value
           Product: Portable OpenSSH
           Version: 6.8p1
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P5
         Component: sshd
          Assignee: unassigned-bugs at mindrot.org
          Reporter: jjelen at redhat.com

Created attachment 2620
  --> https://bugzilla.mindrot.org/attachment.cgi?id=2620&action=edit
proposed patch

Based on previous bugzilla, we realized that it would be useful to have
default value for this server option, because of:

 * First of all, it is inconsistent with all other options that are
available in openssh.

 * Another issue is usability. You can't reset this option in match
block to it's default value if other match block or default config
changed this option.

Ex: I want to have all users to authenticate using public key and
password, but I want exception for localhost to use any authentication
method available. It would be nice, if we could do something like this:

>Match Address ::1
>    AuthenticationMethods any
>Match Address *
>    AuthenticationMethods publickey,password

There can be used workaround:
>Match Address !::1
>    AuthenticationMethods publickey,password

but it doesn't work, as stated in bz2397. Also it can get quite messy
if you have more blocks like that.

To have this feature working, we need to choose value for ANY (proposed
"any"), use this value as default (enforced by
fill_default_server_options) and make sure that it is handled
everywhere in the code consistently. There are few design
consideration, before posting a patch:
 * We can't use just num_auth_methods == 0, because this is considered
as not-defined and it can't override previously definde authentication
methods
 * We can use enforce num_auth_methods == 1 && strcmp(auth_methods[0],
"any"), but it is not much elegant from my POV, but best I have got.
 * We can use num_auth_methods == -1, but it would require few changes
in more data types in application (currently defined as u_int, so we
can't store here -1).


Also as I can see, there was not properly propagated change to bz2281
from our bugzilla which covered also empty values of
AuthenticationMethods (also covered in attached patch).

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list