The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Config::OpenSSH::Authkey::Entry::Options - authorized_keys entry options handler

SYNOPSIS

Parse an options string:

  my $op =
    Config::OpenSSH::Authkey::Entry::Options->new('no-pty,no-user-rc');
  
  $op->set_option('from', '127.0.0.1');
  $op->unset_option('no-pty');
  print $op->as_string;

DESCRIPTION

This module parses option strings (no-pty,from="",...) from OpenSSH authorized_keys files. It is used by Config::OpenSSH::Authkey::Entry. Consult the AUTHORIZED_KEYS FILE FORMAT section of sshd(8) for more information about these options.

CLASS METHODS

new optional option string to parse

Constructor. Optionally accepts an option string to parse.

split_options option string

Accepts a string of comma separated options, and parses these into a list of hash references. In scalar context, returns a reference to the list. In list context, returns a list.

INSTANCE METHODS

parse option string

Utility method in the event an option string was not passed to new.

get_option option name

Returns the value (or values) for a named option. OpenSSH does allow duplicate entries for options, though in most cases this method will only return a single value. Options are boolean or string value; boolean options return the name of the method, while string options return the string value. Assuming the options have been set as shown above:

  # returns 'no-agent-forwarding'
  $entry->get_option('no-agent-forwarding');
  
  # returns '127.0.0.1'
  $entry->get_option('from');

In scalar context, only the first option is returned (or the empty string). In list context, a list of one (or rarely more) values will be returned (or the empty list).

get_options

Returns a list of all option names that exist in the instance.

set_option option name, optional value

Enables an option, or with an additional argument, sets the string value for that option.

  # boolean
  $entry->set_option('no-agent-forwarding');
  
  # string value
  $entry->set_option(from => '127.0.0.1');

If multiple options with the same name are present in the options list, only the first option found will be updated, and all subsequent entries removed from the options list.

unset_option option name

Deletes all occurrences of the named option.

unset_options

Removes all options.

as_string

Returns the options as a comma separated value list. Any option values that contain a doublequote (") that is not escaped with a backslash (\) will be escaped with a backslash.

BUGS

No known bugs. Newer versions of this module may be available from CPAN.

If the bug is in the latest version, send a report to the author. Patches that fix problems or add new features are welcome.

SEE ALSO

sshd(8), ssh-keygen(1), Config::OpenSSH::Authkey::Entry

AUTHOR

thrig - Jeremy Mates (cpan:JMATES) <jmates at cpan.org>

COPYRIGHT

Copyright 2010,2015,2019 by Jeremy Mates

This program is distributed under the (Revised) BSD License: http://www.opensource.org/licenses/BSD-3-Clause