class Net::SSH::KeyFactory

def load_data_public_key(data, filename="")

appropriately. The new public key is returned.
the file describes an RSA or DSA key, and will load it
Loads a public key. It will correctly determine whether
def load_data_public_key(data, filename="")
  fields = data.split(/ /)
  blob = nil
  begin
    blob = fields.shift
  end while !blob.nil? && !/^(ssh-(rsa|dss)|ecdsa-sha2-nistp\d+)$/.match(blob)
  blob = fields.shift
  raise Net::SSH::Exception, "public key at #{filename} is not valid" if blob.nil?
  blob = blob.unpack("m*").first
  reader = Net::SSH::Buffer.new(blob)
  reader.read_key or raise OpenSSL::PKey::PKeyError, "not a public key #{filename.inspect}"
end