class Kitchen::Transport::Kerberos

A Transport which uses the SSH protocol to execute commands and transfer files.

@author Fletcher Nichol <fnichol@nichol.ca>

Private Instance Methods

connection_options(data) click to toggle source

Builds the hash of options needed by the Connection object on construction.

@param data [Hash] merged configuration and mutable state data @return [Hash] hash of connection options @api private rubocop:disable Metrics/MethodLength, Metrics/AbcSize

# File lib/kitchen/transport/kerberos.rb, line 49
def connection_options(data)
  opts = {
    logger: logger,
    user_known_hosts_file: "/dev/null",
    hostname: data[:hostname],
    port: data[:port],
    username: data[:username],
    compression: data[:compression],
    compression_level: data[:compression_level],
    keepalive: data[:keepalive],
    keepalive_interval: data[:keepalive_interval],
    timeout: data[:connection_timeout],
    connection_retries: data[:connection_retries],
    connection_retry_sleep: data[:connection_retry_sleep],
    max_ssh_sessions: data[:max_ssh_sessions],
    max_wait_until_ready: data[:max_wait_until_ready],
    ssh_gateway: data[:ssh_gateway],
    ssh_gateway_username: data[:ssh_gateway_username],
          auth_methods: %w[gssapi-with-mic]
  }

  opts[verify_host_key_option] = false

  opts[:forward_agent] = data[:forward_agent] if data.key?(:forward_agent)
  opts[:verbose] = data[:verbose].to_sym      if data.key?(:verbose)

  opts
end
verify_host_key_option() click to toggle source

net-ssh >=4.2 has renamed paranoid option to verify_host_key

# File lib/kitchen/transport/kerberos.rb, line 79
def verify_host_key_option
  current_net_ssh = Net::SSH::Version::CURRENT
  new_option_version = Net::SSH::Version[4, 2, 0]

  current_net_ssh >= new_option_version ? :verify_host_key : :paranoid
end