6

初めてstackoverflowで質問し、sshjも使用しています。sshj で提供されている例以外に、この API の使用に役立つ適切なリソースを見つけられませんでした。

sshj を使用してリモート ポート フォワーディングを試みたところ、このエラーが発生しました。

Exception in thread "main" net.schmizz.sshj.userauth.UserAuthException: Exhausted available authentication methods

VM で認証をテストしましたが、公開鍵は使用しませんでした。これを使用して、ログインを知っている 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();
    }
}

おそらくこれを行うための最良の(または正しい)方法ではありません。

4

2 に答える 2