Как минимум два способа сделать это в SFTP и Ruby:
require 'net/sftp'
Net::SFTP.start('HOSTNAME', 'USER', :password => 'PASSWORD') do |sftp|
file = File.expand_path(__FILE__)
dir = File.dirname(file)
sftp.lstat!(file).directory?
sftp.lstat!(dir).file?
sftp.file.open(dir, "r") do |f|
f.stat.file?
f.stat.directory? # true
end
end