module Spectre::SSH
Public Class Methods
ssh(name, config = {})
click to toggle source
# File lib/spectre/ssh.rb, line 109 def ssh name, config = {}, &block raise "SSH connection '#{name}' not configured" unless @@cfg.key?(name) or config.count > 0 cfg = @@cfg[name] || {} host = cfg['host'] || name username = config[:username] || cfg['username'] password = config[:password] || cfg['password'] opts = {} opts[:password] = password opts[:port] = config[:port] || cfg['port'] || 22 opts[:keys] = [cfg['key']] if cfg.key? 'key' opts[:passphrase] = cfg['passphrase'] if cfg.key? 'passphrase' opts[:auth_methods] = [] opts[:auth_methods].push 'publickey' if opts[:keys] opts[:auth_methods].push 'password' if opts[:password] ssh_con = SSHConnection.new(host, username, opts, @@logger) begin ssh_con.instance_eval &block ensure ssh_con.close end end