Rsync is using a ssh channel of communication with a hosting, so I think it’s mandatory to have ssh functionality on hosting. And ssh uses passwords of course. It’s a part of config.rb snippet for middleman-deploy plugin:
# Deployment with 'middleman-deploy'
# usage: 
# $ rake deploy:test
# $ rake deploy:production
case ENV['TARGET'].to_s.downcase
when 'production'
  activate :deploy do |deploy|
		# deploy.build_before = true # default: false
		deploy.method	= :rsync
		deploy.host		= "####"
		deploy.port		= 2222
		deploy.clean  = true  # remove orphaned files on remote host, default: false
		deploy.flags  = "-avz --exclude=.DS_Store"
		deploy.path		= "####/"
		deploy.user		= Bundler.settings["az_user"]
		deploy.password = Bundler.settings["az_pass"]
  end
else
  activate :deploy do |deploy|
…
  end
end