Class Net::SSH::Authentication::Methods::Abstract

  1. lib/net/ssh/authentication/methods/abstract.rb
Parent: Object

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

Methods

public class

  1. new

public instance

  1. send_message
  2. session_id
  3. userauth_request

Included modules

  1. Constants
  2. Loggable

Attributes

key_manager [R] The key manager object. Not all authentication methods will require this.
session [R] The authentication session object

Public class methods

new (session, options={})

Instantiates a new authentication method.

[show source]
    # File lib/net/ssh/authentication/methods/abstract.rb, line 21
21:     def initialize(session, options={})
22:       @session = session
23:       @key_manager = options[:key_manager]
24:       @options = options
25:       self.logger = session.logger
26:     end

Public instance methods

send_message (msg)

Sends a message via the underlying transport layer abstraction. This will block until the message is completely sent.

[show source]
    # File lib/net/ssh/authentication/methods/abstract.rb, line 36
36:     def send_message(msg)
37:       session.transport.send_message(msg)
38:     end
session_id ()

Returns the session-id, as generated during the first key exchange of an SSH connection.

[show source]
    # File lib/net/ssh/authentication/methods/abstract.rb, line 30
30:     def session_id
31:       session.transport.algorithms.session_id
32:     end
userauth_request (username, next_service, auth_method, *others)

Creates a new USERAUTH_REQUEST packet. The extra arguments on the end must be either boolean values or strings, and are tacked onto the end of the packet. The new packet is returned, ready for sending.

[show source]
    # File lib/net/ssh/authentication/methods/abstract.rb, line 43
43:     def userauth_request(username, next_service, auth_method, *others)
44:       buffer = Net::SSH::Buffer.from(:byte, USERAUTH_REQUEST,
45:         :string, username, :string, next_service, :string, auth_method)
46: 
47:       others.each do |value|
48:         case value
49:         when true, false then buffer.write_bool(value)
50:         when String      then buffer.write_string(value)
51:         else raise ArgumentError, "don't know how to write #{value.inspect}"
52:         end
53:       end
54: 
55:       buffer
56:     end