我想要创建一个从Windows系统到Linux机器的连接,该机器使用RSA令牌密码进行身份验证,我希望运行shell命令并从Java代码中获取输出。当使用putty登录到那个Linux系统时,有以下步骤:
我已经尝试过使用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 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实现会产生类似的结果。
发布于 2018-07-17 10:33:43
您正在寻找的是一个对话框,它将在那个时间点接受密码并建立连接。下面是集成RSA SecureId - http://www.jcraft.com/jsch/examples/UserAuthPubKey.java.html所需的内容。
https://stackoverflow.com/questions/51166570
复制相似问题