class Dependencies::Sshkey
Constants
- DEFAULT_KEY_ALGO
- DEFAULT_KEY_FILE_COMMENT_COMMAND
- DEFAULT_KEY_LIFETIME_S
- DEFAULT_KEY_SIZE
Public Instance Methods
meet()
click to toggle source
# File lib/dependencies/sshkey.rb, line 19 def meet Secrets.load Output.warn("\nNo passphrase set for SSH key '#{priv_key_name}'") if passphrase.nil? || passphrase.empty? FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name) generate_key unless File.exist?(priv_key_name) && File.exist?(pub_key_name) add_key if success? && should_add_key? end
met?()
click to toggle source
# File lib/dependencies/sshkey.rb, line 14 def met? # we always need to at least update the key lifetime in the agent false end
should_meet?()
click to toggle source
# File lib/dependencies/sshkey.rb, line 33 def should_meet? true end
unmeet()
click to toggle source
# File lib/dependencies/sshkey.rb, line 29 def unmeet true end
Private Instance Methods
add_key()
click to toggle source
# File lib/dependencies/sshkey.rb, line 45 def add_key Net::SSH::Authentication::Agent.connect.add_identity( unencrypted_key, key_comment, lifetime: opt_key_lifetime ) end
dir_name()
click to toggle source
# File lib/dependencies/sshkey.rb, line 69 def dir_name `echo #{File.dirname(name)}`.chomp end
generate_key()
click to toggle source
# File lib/dependencies/sshkey.rb, line 39 def generate_key execute( "ssh-keygen -b #{opt_key_size} -t #{opt_key_algo} -f #{priv_key_name} -q -N '#{passphrase}' -C '#{key_file_comment}'" ) end
key_comment()
click to toggle source
# File lib/dependencies/sshkey.rb, line 61 def key_comment Ops.project_name end
key_file_comment()
click to toggle source
# File lib/dependencies/sshkey.rb, line 65 def key_file_comment `echo #{opt_key_file_comment_command}`.chomp end
opt_add_keys?()
click to toggle source
# File lib/dependencies/sshkey.rb, line 110 def opt_add_keys? Options.get("sshkey.add_keys").nil? ? true : Options.get("sshkey.add_keys") end
opt_key_algo()
click to toggle source
# File lib/dependencies/sshkey.rb, line 85 def opt_key_algo Options.get("sshkey.key_algo") || DEFAULT_KEY_ALGO end
opt_key_file_comment_command()
click to toggle source
# File lib/dependencies/sshkey.rb, line 118 def opt_key_file_comment_command Options.get("sshkey.key_file_comment") || DEFAULT_KEY_FILE_COMMENT_COMMAND end
opt_key_lifetime()
click to toggle source
# File lib/dependencies/sshkey.rb, line 114 def opt_key_lifetime Options.get("sshkey.key_lifetime") || DEFAULT_KEY_LIFETIME_S end
opt_key_size()
click to toggle source
# File lib/dependencies/sshkey.rb, line 81 def opt_key_size Options.get("sshkey.key_size") || DEFAULT_KEY_SIZE end
opt_passphrase()
click to toggle source
# File lib/dependencies/sshkey.rb, line 93 def opt_passphrase @opt_passphrase ||= begin return "$#{Options.get('sshkey.passphrase_var')}" if Options.get("sshkey.passphrase_var") output_passphrase_warning if Options.get("sshkey.passphrase") Options.get("sshkey.passphrase") end end
output_passphrase_warning()
click to toggle source
# File lib/dependencies/sshkey.rb, line 103 def output_passphrase_warning Output.warn( "\n'options.sshkey.passphrase' is deprecated and will be removed in a future release. " \ "Use 'options.sshkey.passphrase_var' instead." ) end
passphrase()
click to toggle source
# File lib/dependencies/sshkey.rb, line 89 def passphrase `echo #{opt_passphrase}`.chomp end
priv_key_name()
click to toggle source
# File lib/dependencies/sshkey.rb, line 73 def priv_key_name `echo #{name}`.chomp end
pub_key_name()
click to toggle source
# File lib/dependencies/sshkey.rb, line 77 def pub_key_name "#{priv_key_name}.pub" end
should_add_key?()
click to toggle source
# File lib/dependencies/sshkey.rb, line 53 def should_add_key? ENV["SSH_AUTH_SOCK"] && opt_add_keys? end
unencrypted_key()
click to toggle source
# File lib/dependencies/sshkey.rb, line 57 def unencrypted_key Net::SSH::KeyFactory.load_private_key(priv_key_name, passphrase.empty? ? nil : passphrase) end