Net::FTP provides a login method that you can use against a Net::FTP object, like so:
require 'net/ftp' ftp = Net::FTP.new('ftp.ruby-lang.org') ftp.passive = true ftp.login ftp.list('*') { |file| puts file } ftp.close