Class: Shells::PfSenseSshSession

Inherits:
SshSession show all
Includes:
PfSenseCommon
Defined in:
lib/shells/pf_sense_ssh_session.rb

Overview

Executes an SSH session with a pfSense host.

Valid options:

host

The name or IP address of the host to connect to. Defaults to ‘localhost’.

port

The port on the host to connect to. Defaults to 22.

user

The user to login with. This option is required.

password

The password to login with. If our public key is an authorized key on the host, the password is ignored.

silence_timeout

When a command is executing, this is the maximum amount of time to wait for any feedback from the shell. If set to 0 (or less) there is no timeout. Unlike command_timeout this value resets every time we receive feedback. This option can be overridden by providing an alternate value to the exec method on a case-by-case basis.

command_timeout

When a command is executing, this is the maximum amount of time to wait for the command to finish. If set to 0 (or less) there is no timeout. Unlike silence_timeout this value does not reset when we receive feedback. This option can be overridden by providing an alternate value to the exec method on a case-by-case basis.

connect_timeout

This is the maximum amount of time to wait for the initial connection to the SSH shell.

Shells::PfSenseSshSession.new(
    host: '10.10.10.10',
    user: 'somebody',
    password: 'super-secret'
) do |shell|
  cfg = shell.get_config_section("aliases")
  cfg["alias"] ||= []
  cfg["alias"] << {
      :name => "MY_NETWORK",
      :type => "network",
      :address => "192.168.1.0/24",
      :descr => "My home network",
      :details => "Created #{Time.now.to_s}"
  }
  shell.set_config_section("aliases", cfg, "Add home network")
  shell.apply_filter_config
end

Constant Summary

Constants included from PfSenseCommon

Shells::PfSenseCommon::BASE_SHELL, Shells::PfSenseCommon::PF_PROMPT, Shells::PfSenseCommon::PF_SHELL

Instance Attribute Summary

Attributes included from PfSenseCommon

#pf_sense_host, #pf_sense_user, #pf_sense_version

Attributes inherited from ShellBase

#last_exit_code, #options

Method Summary

Methods included from PfSenseCommon

#apply_filter_config, #apply_user_config, #config_parsed?, #enable_cert_auth, #exec_prompt, #exec_shell, #get_config_section, included, #line_ending, #parse_config, #pf_exec, #quit, #reboot, #set_config_section, #validate_options

Methods included from BashCommon

#read_file, #sudo_exec, #write_file

Methods inherited from ShellBase

after_init, after_term, before_init, before_term, #combined_output, #exec, #exec_for_code, #initialize, #line_ending, on_debug, on_exception, #read_file, #session_complete?, #stderr, #stdout, #write_file

Constructor Details

This class inherits a constructor from Shells::ShellBase