To download a file vie SCP under Ruby, you can just use the NET::SCP class included in ruby like that:
require "net/scp" =begin Downloads a single file or a folder via scp Parameters: - +host:: +string+ remote IP or domain to get the file / folder from - +ort+:: +string+ remote port - +use+r:: +string+ remote user - +remoteFile+:: +string+ absolute path to file / folder on remote host - +localFile+:: +string+ absolute path to file / folder on local machine - +sshKey+:: +string+ SSH key to use for authentication - +recursive+:: +boolean+ whether to download a path recursively or not (defaults to false) =end def downloadFileOverSCP(host, port, user, remoteFile, localFile, sshKey, recursive = false) options = { :ssh => { :keys => sshKey, :port => port }, :recursive => recursive } Net::SCP.download!(host, user, remoteFile, localFile, options) do |ch, name, received, total| percentage = format('%.2f', received.to_f / total.to_f * 100) + '%' print "Saving to #{name}: Received #{received} of #{total} bytes" + " (#{percentage}) \r" STDOUT.flush end puts "Download completed!" end downloadFileOverSCP( 'ask-sheldon.com', 22, 'mastermind', '/var/www/share/docRoot/current/sql/db_dump_magento_v4_manual.sql.gz', 'db_dump_magento_v4_manual.sql.gz', '/home/sheldon/.ssh/mykeys/id_rsa_super_secret_private_key' )
For further information about NET::SCP have a look at https://github.com/net-ssh/net-scp.