有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Java中的ssh2连接到由RSA SecurID保护的linux系统

我想创建一个从Windows系统到Linux机器的连接,该机器使用RSA令牌密码进行身份验证,我想运行shell命令并从Java代码获得输出。使用putty登录到该Linux系统时,有以下步骤:

  1. 输入IP和端口并连接
  2. 在PuTTY终端中输入用户名,询问“登录身份:”
  3. 在输入RSA SecurID的位置输入密码

我已经尝试使用Jsch包进行连接,但它没有连接。我还尝试了一个jcabi-sshhttp://ssh.jcabi.com/),它是Jsch的包装器。他们似乎都不为我工作

编辑:我使用Jsch包使用了以下代码

        String host = "xxx";
        String user = "xxx";
        String password;

        Scanner scanner = new Scanner (System.in);
        System.out.println("Enter rsa token: ");
        password = scanner.nextLine();

        Session session = jsch.getSession(user, host, 2222);
        session.setPassword(password);
        session.connect();

在它之后,我得到以下错误:

com.jcraft.jsch.JSchException: UnknownHostKey: myservername. RSA key fingerprint is ba:2b:70:2f:4f:fa:f6:20:31:56:e0:e8:8b:16:46:c9

我找到了一个解决方案,有人说包含这段将StrictHostKeyChecking设置为“否”的代码:

    java.util.Properties config = new java.util.Properties(); 
    config.put("StrictHostKeyChecking", "no");
    session.setConfig(config);

然后我的错误变为:

com.jcraft.jsch.JSchException: Auth cancel

尝试使用另一个jcabi-ssh实现会得到类似的结果


共 (1) 个答案