title: net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
body: <p>first time asking on stackoverflow, and also using sshj. Besides the examples provided with sshj, I haven't really found any good resources to help using this API.</p>
  
  <p>I've been trying to do remote port forwarding using sshj and have run into this error. </p>
  
  <pre><code>Exception in thread "main" net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
  </code></pre>
  
  <p>I tested the auth with a VM, but without using a public key. I would be using this to connect to an EC2 instance on which I know the login.</p>
  
  <pre><code>public void startRemotePortForwardingConnection(LocalPortForwarder.Parameters parameters) throws IOException{
      sshClient.connect(parameters.getLocalHost());
      this.connectionStatus = CONNECTED;
      System.out.print("Connected to localhost" + NEWLINE);
  
      try {
          sshClient.authPassword(this.username, this.password);
          System.out.print("Authorized with as user " + username + " with password " + password + NEWLINE);
  
          // the local port we should be listening on
          RemotePortForwarder.Forward localPortToListenOn = new RemotePortForwarder.Forward(parameters.getLocalPort());
          System.out.print("localPortToListenOn initialized" + NEWLINE);
  
          // where we should forward the packets
          InetSocketAddress socketAddress = new InetSocketAddress(parameters.getRemoteHost(), parameters.getRemotePort());
          SocketForwardingConnectListener remotePortToForwardTo = new SocketForwardingConnectListener(socketAddress);
          System.out.print("remotePortToForwardTo initialized" + NEWLINE);
  
          //bind the forwarder to the correct ports
          sshClient.getRemotePortForwarder().bind(localPortToListenOn, remotePortToForwardTo);
          System.out.print("ports bound together" + NEWLINE);
  
          sshClient.getTransport().setHeartbeatInterval(30);
          sshClient.getTransport().join();
      }
      finally {
          sshClient.disconnect();
      }
  }
  </code></pre>
  
  <p>Probably not the best (or even right) way to do this.</p>