net.schmizz.sshj.userauth.UserAuthException:耗尽的可用身份验证方法

use*_*685 5 ssh portforwarding sshj

第一次询问stackoverflow,还使用sshj.除了sshj提供的示例之外,我还没有找到任何帮助使用此API的好资源.

我一直在尝试使用sshj进行远程端口转发,并遇到了这个错误.

Exception in thread "main" net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods
Run Code Online (Sandbox Code Playgroud)

我用VM测试了auth,但没有使用公钥.我将使用它连接到我知道登录的EC2实例.

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

可能不是最好(甚至是正确)的方式.

Sco*_*ott 0

我为之前类似的问题编写了一个示例,您可以直接在连接到 EC2 实例的 groovyconsole 中运行: https: //stackoverflow.com/a/15800383/311525


归档时间:

查看次数:

5870 次

最近记录:

6 年,1 月 前