class Net::SSH::Authentication::Methods::Abstract

bits of common functionality.
The base class of all user authentication methods. It provides a few

def initialize(session, options={})

Instantiates a new authentication method.
def initialize(session, options={})
  @session = session
  @key_manager = options[:key_manager]
  @options = options
  self.logger = session.logger
end

def send_message(msg)

will block until the message is completely sent.
Sends a message via the underlying transport layer abstraction. This
def send_message(msg)
  session.transport.send_message(msg)
end

def session_id

an SSH connection.
Returns the session-id, as generated during the first key exchange of
def session_id
  session.transport.algorithms.session_id
end

def userauth_request(username, next_service, auth_method, *others)

of the packet. The new packet is returned, ready for sending.
must be either boolean values or strings, and are tacked onto the end
Creates a new USERAUTH_REQUEST packet. The extra arguments on the end
def userauth_request(username, next_service, auth_method, *others)
  buffer = Net::SSH::Buffer.from(:byte, USERAUTH_REQUEST,
    :string, username, :string, next_service, :string, auth_method)
  others.each do |value|
    case value
    when true, false then buffer.write_bool(value)
    when String      then buffer.write_string(value)
    else raise ArgumentError, "don't know how to write #{value.inspect}"
    end
  end
  buffer
end