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/

相关文章:

github - 通过工作流程自动从 Github 推送到 Dreamhost

python - 当我使用 cron 运行时,在 Linux 服务器中找不到某些文件

c - procfs 如何输出/proc/iomem?

java - 如何获取两个特定字符串之间的文本

java - 下载 Gradle 时 Ionic 构建 Android 错误

java - 每个选项卡的新 JVM 或进程

c++ - clang++ ABI 和 g++ 一样吗?

json - jq 删除重复的对象之一

PHP SFTP/SSH 传输

java - com.thoughtworks.xstream.security.ForbiddenClassException