title: Capistrano 3 discards :user variable when executing remote SSH command
body: <p>Trying to test Capistrano from scratch.</p>
  
  <p>Capfile:</p>
  
  <pre><code>require 'capistrano/setup'
  require 'capistrano/deploy'
  I18n.enforce_available_locales = false
  Dir.glob('lib/capistrano/tasks/*.rb').each { |r| import r }
  </code></pre>
  
  <p>deploy.rb:</p>
  
  <pre><code>role :testrole, 'x.x.x.x'
  set :user, 'ubuntu'
  </code></pre>
  
  <p>The test.rb task:</p>
  
  <pre><code>namespace :test do
  desc "Uptime on servers"
  task :uptime do
    on roles(:testrole) do
      execute "uptime" 
    end
  end
   end
  </code></pre>
  
  <p>cap command:</p>
  
  <pre><code>cap production test:uptime
  </code></pre>
  
  <p>output:</p>
  
  <pre><code>INFO [c077da7f] Running /usr/bin/env uptime on x.x.x.x
  DEBUG [c077da7f] Command: /usr/bin/env uptime
  cap aborted!
  Net::SSH::AuthenticationFailed
  </code></pre>
  
  <p>Dont have a problem to login from the shell using the same user and key.
  While logged in the remote server, I can see in auth.log that an empty user given while executing the cap:</p>
  
  <pre><code>test-srv sshd[1459]: Invalid user  from x.x.x.x
  </code></pre>
  
  <p>What do I miss ?
  Thanks!</p>