A Puppet module for managing OpenSSH servers and configurations. The goals of this module is to provide a flexible yet complete approach to managing OpenSSH infrastructure.
In the case of the sshd
server, the entire sshd_config
file is managed, not
just the options chosen. For this reason, is is important to understand which
options you wish to actually be using and enable those through the module.
This module does not (and should not) attempt to understand the compile-time
options for every Linux or BSD used in the delivery of the platform, nor any
patches that have been added.
The options available on for tuning in the ssh::server::config
class were
originally taken from the OpenBSD 5.8 sshd_config(5)
man page. The goal here
is to keep up with the options as they are released, reviewing release notes
for new versions as they are available.
Easily allow a POSIX group in with AllowGroups
.
ssh::allowgroup { 'admins': }
Distribute SSH host keys to all systems in the fleet.
include ssh::hosts
The ssh::keygen
define type allows users to generate SSH keys of a given type
and size, and optionally specify the location of the resulting key.
ssh::keygen { 'Root ECDSA':
type => 'ecdsa',
size => 521,
}
Optionally, users may also specify a target
, which will modify the
ssh-keygen
command to write the resulting data to the given file.
Manage the ssh_config(5)
file. See also the ssh::client::config
class.
include ssh::config
The ssh_config(5)
options available are configured in one of two ways.
Either the values for the desired options are managed through the use of the
ssh::client::config
class (which you can use hiera
to set values on), or
through defined types of their own.
Here is an example of how the options might be set for an SSH client.
ssh::client::config::forwardagent: 'yes'
ssh::client::config::verifyhostkeydns: 'yes'
Note that the options as passed to the ssh::client::config
class are lower
cased. The only exception to this is the LogLevel
parameter which is manged
through the log_level
parameter. This is to avoid the loglevel
meta-parameter for Puppet resources.
Manage the sshd_config(5)
file and its daemon, sshd(8)
. See also the
ssh::server::config
class.
include ssh::server
The sshd_config(5)
options available are configured in one of two ways.
Either the values for the desired options are managed through the use of the
ssh::server::config
class (which you can use hiera
to set values on), or
through defined types of their own.
Here is an example of how the options might be set for an SSH server daemon.
ssh::server::config::has_pam: 'yes'
ssh::server::config::usepam: 'yes'
ssh::server::config::authenticationmethods: 'publickey,keyboard-interactive'
Note that the options as passed to the ssh::server::config
class are lower
cased. The only exception to this is the LogLevel
parameter which is manged
through the log_level
parameter. This is to avoid the loglevel
meta-parameter for Puppet resources.