Mercurial > repos > other > Puppet
diff modules/sshkeys_core/REFERENCE.md @ 478:adf6fe9bbc17
Update Puppet modules to latest versions
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 29 Aug 2024 18:47:29 +0100 |
parents | 750d36241580 |
children |
line wrap: on
line diff
--- a/modules/sshkeys_core/REFERENCE.md Tue Aug 27 13:35:17 2024 +0100 +++ b/modules/sshkeys_core/REFERENCE.md Thu Aug 29 18:47:29 2024 +0100 @@ -1,38 +1,24 @@ # Reference +<!-- DO NOT EDIT: This document was generated by Puppet Strings --> + +## Table of Contents + +### Resource types + +* [`ssh_authorized_key`](#ssh_authorized_key): Manages SSH authorized keys. Currently only type 2 keys are supported. +* [`sshkey`](#sshkey): Installs and manages ssh host keys. + ## Resource types -* [`ssh_authorized_key`](#ssh_authorized_key): Manages SSH authorized keys. Currently only type 2 keys are supported. In their native habitat, SSH keys usually appear as a single long lin -* [`sshkey`](#sshkey): Installs and manages ssh host keys. By default, this type will install keys into `/etc/ssh/ssh_known_hosts`. To manage ssh keys in a differe -## Resource types -### ssh_authorized_key - -Manages SSH authorized keys. Currently only type 2 keys are supported. +### <a name="ssh_authorized_key"></a>`ssh_authorized_key` In their native habitat, SSH keys usually appear as a single long line, in the format `<TYPE> <KEY> <NAME/COMMENT>`. This resource type requires you -to split that line into several attributes. Thus, a key that appears in -your `~/.ssh/id_rsa.pub` file like this... - - ssh-rsa AAAAB3Nza[...]qXfdaQ== nick@magpie.example.com - -...would translate to the following resource: - - ssh_authorized_key { 'nick@magpie.example.com': - ensure => present, - user => 'nick', - type => 'ssh-rsa', - key => 'AAAAB3Nza[...]qXfdaQ==', - } +to split that line into several attributes. To ensure that only the currently approved keys are present, you can purge -unmanaged SSH keys on a per-user basis. Do this with the `user` resource -type's `purge_ssh_keys` attribute: - - user { 'nick': - ensure => present, - purge_ssh_keys => true, - } +unmanaged SSH keys on a per-user basis. This will remove any keys in `~/.ssh/authorized_keys` that aren't being managed with `ssh_authorized_key` resources. See the documentation of the @@ -42,6 +28,36 @@ SSH key should be installed, the `ssh_authorized_key` resource will autorequire that user. +#### Examples + +##### Thus, a key that appears in your `~/.ssh/id_rsa.pub` file like this... + +```puppet + +ssh-rsa AAAAB3Nza[...]qXfdaQ== nick@magpie.example.com +``` + +##### ...would translate to the following resource: + +```puppet + +ssh_authorized_key { 'nick@magpie.example.com': + ensure => present, + user => 'nick', + type => 'ssh-rsa', + key => 'AAAAB3Nza[...]qXfdaQ==', +} +``` + +##### Do this with the `user` resource type's `purge_ssh_keys` attribute: + +```puppet + +user { 'nick': + ensure => present, + purge_ssh_keys => true, +} +``` #### Properties @@ -49,19 +65,11 @@ ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present - -##### `type` - -Valid values: ssh-dss, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519, dsa, ed25519, rsa - -Aliases: "dsa"=>"ssh-dss", "ed25519"=>"ssh-ed25519", "rsa"=>"ssh-rsa" - -The encryption type used. +Default value: `present` ##### `key` @@ -75,10 +83,20 @@ * Key identifiers / comments, such as 'joe@joescomputer.local' --- put these in the `name` attribute/resource title. -##### `user` +##### `options` + +Key options; see sshd(8) for possible values. Multiple values +should be specified as an array. For example, you could use the +following to install a SSH CA that allows someone with the +'superuser' principal to log in as root -The user account in which the SSH key should be installed. The resource -will autorequire this user if it is being managed as a `user` resource. + ssh_authorized_key { 'Company SSH CA': + ensure => present, + user => 'root', + type => 'ssh-ed25519', + key => 'AAAAC3NzaC[...]CeA5kG', + options => [ 'cert-authority', 'principals=\"superuser\"' ], + } ##### `target` @@ -88,28 +106,41 @@ `~user/.ssh/authorized_keys`. The parent directory must be present if the target is in a privileged path. -Default value: absent +Default value: `absent` -##### `options` +##### `type` + +Valid values: `ssh-dss`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, `ecdsa-sha2-nistp521`, `ssh-ed25519`, `sk-ecdsa-sha2-nistp256@openssh.com`, `sk-ssh-ed25519@openssh.com`, `ssh-rsa-cert-v01@openssh.com`, `ssh-ed25519-cert-v01@openssh.com`, `ssh-dss-cert-v01@openssh.com`, `ecdsa-sha2-nistp256-cert-v01@openssh.com`, `ecdsa-sha2-nistp384-cert-v01@openssh.com`, `ecdsa-sha2-nistp521-cert-v01@openssh.com`, `dsa`, `ed25519`, `rsa`, `ecdsa-sk`, `ed25519-sk` -Key options; see sshd(8) for possible values. Multiple values -should be specified as an array. For example, you could use the -following to install a SSH CA that allows someone with the -'superuser' principal to log in as root +Aliases: `"dsa"=>"ssh-dss", "ed25519"=>"ssh-ed25519", "rsa"=>"ssh-rsa", "ecdsa-sk"=>"sk-ecdsa-sha2-nistp256@openssh.com", "ed25519-sk"=>"sk-ssh-ed25519@openssh.com"` + +The encryption type used. - ssh_authorized_key { 'Company SSH CA': - ensure => present, - user => 'root', - type => 'ssh-ed25519', - key => 'AAAAC3NzaC[...]CeA5kG', - options => [ 'cert-authority', 'principals="superuser"' ], - } +##### `user` + +The user account in which the SSH key should be installed. The resource +will autorequire this user if it is being managed as a `user` resource. #### Parameters The following parameters are available in the `ssh_authorized_key` type. -##### `name` +* [`drop_privileges`](#-ssh_authorized_key--drop_privileges) +* [`name`](#-ssh_authorized_key--name) +* [`provider`](#-ssh_authorized_key--provider) + +##### <a name="-ssh_authorized_key--drop_privileges"></a>`drop_privileges` + +Valid values: `true`, `false`, `yes`, `no` + +Whether to drop privileges when writing the key file. This is +useful for creating files in paths not writable by the target user. Note +the possible security implications of managing file ownership and +permissions as a privileged user. + +Default value: `true` + +##### <a name="-ssh_authorized_key--name"></a>`name` namevar @@ -120,23 +151,17 @@ if you want to specify one key for multiple users, you must use a different comment for each instance. -##### `drop_privileges` +##### <a name="-ssh_authorized_key--provider"></a>`provider` -Whether to drop privileges when writing the key file. This is -useful for creating files in paths not writable by the target user. Note -the possible security implications of managing file ownership and -permissions as a privileged user. - -Default value: `true` +The specific backend to use for this `ssh_authorized_key` resource. You will seldom need to specify this --- Puppet will +usually discover the appropriate provider for your platform. -### sshkey +### <a name="sshkey"></a>`sshkey` -Installs and manages ssh host keys. By default, this type will -install keys into `/etc/ssh/ssh_known_hosts`. To manage ssh keys in a -different `known_hosts` file, such as a user's personal `known_hosts`, -pass its path to the `target` parameter. See the `ssh_authorized_key` -type to manage authorized keys. - +By default, this type will install keys into `/etc/ssh/ssh_known_hosts`. +To manage ssh keys in a different `known_hosts` file, such as a user's personal +`known_hosts`, pass its path to the `target` parameter. See the +`ssh_authorized_key` type to manage authorized keys. #### Properties @@ -144,19 +169,16 @@ ##### `ensure` -Valid values: present, absent +Valid values: `present`, `absent` The basic property that the resource should be in. -Default value: present - -##### `type` +Default value: `present` -Valid values: ssh-dss, ssh-ed25519, ssh-rsa, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, dsa, ed25519, rsa +##### `host_aliases` -Aliases: "dsa"=>"ssh-dss", "ed25519"=>"ssh-ed25519", "rsa"=>"ssh-rsa" - -The encryption type used. Probably ssh-dss or ssh-rsa. +Any aliases the host might have. Multiple values must be +specified as an array. ##### `key` @@ -170,11 +192,6 @@ * Key identifiers / comments, such as 'joescomputer.local' --- put these in the `name` attribute/resource title. -##### `host_aliases` - -Any aliases the host might have. Multiple values must be -specified as an array. - ##### `target` The file in which to store the ssh key. Only used by @@ -184,10 +201,28 @@ The following parameters are available in the `sshkey` type. -##### `name` +* [`name`](#-sshkey--name) +* [`provider`](#-sshkey--provider) +* [`type`](#-sshkey--type) + +##### <a name="-sshkey--name"></a>`name` namevar The host name that the key is associated with. +##### <a name="-sshkey--provider"></a>`provider` +The specific backend to use for this `sshkey` resource. You will seldom need to specify this --- Puppet will usually +discover the appropriate provider for your platform. + +##### <a name="-sshkey--type"></a>`type` + +Valid values: `ssh-dss`, `ssh-ed25519`, `ssh-rsa`, `ecdsa-sha2-nistp256`, `ecdsa-sha2-nistp384`, `ecdsa-sha2-nistp521`, `sk-ecdsa-sha2-nistp256@openssh.com`, `sk-ssh-ed25519@openssh.com`, `dsa`, `ed25519`, `rsa`, `ecdsa-sk`, `ed25519-sk` + +namevar + +Aliases: `"dsa"=>"ssh-dss", "ed25519"=>"ssh-ed25519", "rsa"=>"ssh-rsa", "ecdsa-sk"=>"sk-ecdsa-sha2-nistp256@openssh.com", "ed25519-sk"=>"sk-ssh-ed25519@openssh.com"` + +The encryption type used. Probably ssh-dss or ssh-rsa. +