diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/puppet/provider/sshkey/parsed.rb | 4 | ||||
-rw-r--r-- | lib/puppet/type/ssh_authorized_key.rb | 14 | ||||
-rw-r--r-- | lib/puppet/type/sshkey.rb | 11 |
3 files changed, 25 insertions, 4 deletions
diff --git a/lib/puppet/provider/sshkey/parsed.rb b/lib/puppet/provider/sshkey/parsed.rb index 965c20d..3ed0873 100644 --- a/lib/puppet/provider/sshkey/parsed.rb +++ b/lib/puppet/provider/sshkey/parsed.rb @@ -28,6 +28,10 @@ Puppet::Type.type(:sshkey).provide( 0o644 end + def title + "#{property_hash[:name]}@#{property_hash[:type]}" + end + def self.default_target case Facter.value(:operatingsystem) when 'Darwin' diff --git a/lib/puppet/type/ssh_authorized_key.rb b/lib/puppet/type/ssh_authorized_key.rb index 648055c..9749e29 100644 --- a/lib/puppet/type/ssh_authorized_key.rb +++ b/lib/puppet/type/ssh_authorized_key.rb @@ -62,11 +62,16 @@ module Puppet newproperty(:type) do desc 'The encryption type used.' - newvalues :'ssh-dss', :'ssh-rsa', :'ecdsa-sha2-nistp256', :'ecdsa-sha2-nistp384', :'ecdsa-sha2-nistp521', :'ssh-ed25519' + newvalues :'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' aliasvalue(:dsa, :'ssh-dss') aliasvalue(:ed25519, :'ssh-ed25519') aliasvalue(:rsa, :'ssh-rsa') + aliasvalue(:'ecdsa-sk', :'sk-ecdsa-sha2-nistp256@openssh.com') + aliasvalue(:'ed25519-sk', :'sk-ssh-ed25519@openssh.com') end newproperty(:key) do @@ -159,7 +164,12 @@ module Puppet end # regular expression suitable for use by a ParsedFile based provider - REGEX = %r{^(?:(.+)\s+)?(ssh-dss|ssh-ed25519|ssh-rsa|ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|ecdsa-sha2-nistp521)\s+([^ ]+)\s*(.*)$} + REGEX = %r{^(?:(.+)\s+)?(ssh-dss|ssh-ed25519|ssh-rsa|ecdsa-sha2-nistp256| + ecdsa-sha2-nistp384|ecdsa-sha2-nistp521|ecdsa-sk|ed25519-sk| + 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)\s+([^ ]+)\s*(.*)$}x def self.keyline_regex REGEX end diff --git a/lib/puppet/type/sshkey.rb b/lib/puppet/type/sshkey.rb index c3cce5d..d45c059 100644 --- a/lib/puppet/type/sshkey.rb +++ b/lib/puppet/type/sshkey.rb @@ -12,10 +12,14 @@ module Puppet "#{self[:name]}@#{self[:type]}" end + def self.parameters_to_include + [:name, :type] + end + def self.title_patterns [ [ - %r{^(.*)@(.*)$}, + %r{^(.*?)@(.*)$}, [ [:name], [:type], @@ -35,11 +39,14 @@ module Puppet isnamevar - newvalues :'ssh-dss', :'ssh-ed25519', :'ssh-rsa', :'ecdsa-sha2-nistp256', :'ecdsa-sha2-nistp384', :'ecdsa-sha2-nistp521' + newvalues :'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' aliasvalue(:dsa, :'ssh-dss') aliasvalue(:ed25519, :'ssh-ed25519') aliasvalue(:rsa, :'ssh-rsa') + aliasvalue(:'ecdsa-sk', :'sk-ecdsa-sha2-nistp256@openssh.com') + aliasvalue(:'ed25519-sk', :'sk-ssh-ed25519@openssh.com') end newproperty(:key) do |