java - 在 Java 中使用 ssh2 连接到受 RSA SecurID 保护的 linux 系统

标签 java linux ssh sftp securid

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

  1. 输入IP和端口并连接
  2. 在要求“登录为:”的 PuTTY 终端中输入用户名
  3. 在我们输入 RSA SecurID 的地方输入 PASSCODE

我已经尝试使用 Jsch 包进行连接,但无法连接。我还尝试了 jcabi-ssh ( http://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 指纹为 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 实现会得到类似的结果。

最佳答案

您正在寻找的是一个对话框,它将在那个时间点接受密码并建立连接。这是集成 RSA SecureId 所需的 - http://www.jcraft.com/jsch/examples/UserAuthPubKey.java.html

关于java - 在 Java 中使用 ssh2 连接到受 RSA SecurID 保护的 linux 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166570/

相关文章:

java - eclipse /tomcat : deploy doesn't work any more (ClassNotFoundException)

java - 如何在多显示器环境下以全屏显示模式显示JFrame?

linux - 发送到源地址

ubuntu - 通过 SFTP 和 SSH key 的 LFTP 连接问题

ubuntu - 通过 VPN 隧道从第三方获取数据

java - SpringBoot应用程序忽略HibernateValidator的xml配置

java - 从 CGI 脚本调用 Java 程序失败

linux - 在 Scala 中执行需要用户交互的 OS 命令

c - 帮助简单的 linux shell 实现

unix - 使用本地环境中的变量执行单行 ssh 命令