Implements the host-based SSH authentication method.
Methods
Included Modules
Attributes
| [W] | hostname | The hostname to report to the server. |
| [W] | messenger | The messenger to use to send and receive messages. |
| [W] | session_id | The session-id of the current SSH session. |
Public Class methods
Create a new
[ show source ]
# File lib/net/ssh/userauth/methods/hostbased.rb, line 39
39: def initialize( buffers )
40: @buffers = buffers
41: end
Public Instance methods
Attempts to perform host-based authorization of the user. The data hash must contain a :key_manager key or the call will fail.
[ show source ]
# File lib/net/ssh/userauth/methods/hostbased.rb, line 46
46: def authenticate( next_service, username, data={} )
47: key_manager = data[:key_manager] or return false
48:
49: key_manager.host_identities.each do |identity|
50: return true if authenticate_with( identity, next_service,
51: username, key_manager )
52: end
53:
54: return false
55:
56: ensure
57: key_manager.finish if key_manager
58: end
Build the "core" hostbased request string.
[ show source ]
# File lib/net/ssh/userauth/methods/hostbased.rb, line 95
95: def build_request( identity, next_service, username, hostname,
96: client_username )
97: # begin
98: buf = @buffers.writer
99: buf.write_byte USERAUTH_REQUEST
100: buf.write_string username
101: buf.write_string next_service
102: buf.write_string "hostbased"
103:
104: buf.write_string identity.ssh_type
105: blob = @buffers.writer
106: blob.write_key identity
107: buf.write_string blob.to_s
108:
109: buf.write_string hostname
110: buf.write_string client_username
111: return buf.to_s
112: end