def authenticate( next_service, username, data={} )
return false unless data[:password]
msg = @buffers.writer
msg.write_byte USERAUTH_REQUEST
msg.write_string username
msg.write_string next_service
msg.write_string "password"
msg.write_bool false
msg.write_string data[:password]
@messenger.send_message msg
message = @messenger.wait_for_message
case message.message_type
when USERAUTH_SUCCESS
return true
when USERAUTH_FAILURE, USERAUTH_PASSWD_CHANGEREQ
return false
else
raise Net::SSH::Exception,
"unexpected reply to USERAUTH_REQUEST: #{message.inspect}"
end
end