使用jsch通过键盘交互式密码身份验证连接到服务器

时间:2020-03-11 04:37:40

标签: java ssh jsch

java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword(password);
session.setConfig(config);
session.connect();

我正在使用上面的代码段连接到没有键盘交互式身份验证的远程计算机。

但是,当我尝试使用键盘交互密码连接到服务器时, com.jcraft.jsch.JSchException: Auth fail例外。

我添加了这些配置并进行了测试,但未成功。

config.put("PreferredAuthentications", "password");

config.put("PreferredAuthentications",
                    "keyboard-interactive,password");

1 个答案:

答案 0 :(得分:0)

尝试一下。

    JSch jSch;
    try {
        Properties properties = new Properties();
        properties.put("PreferredAuthentications", "publickey,keyboard-interactive,password");
        properties.put("StrictHostKeyChecking", "no");
        properties.put("UseDNS", "no");

        jSch = new JSch();
        Session session = jSch.getSession("username", "host/ip", 22);
        session.setConfig(properties);
        session.setTimeout(10 * 1_000);
        session.setPassword("password");
        session.connect();
        Channel channel = session.openChannel("shell");
        channel.connect();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        channel.disconnect();
        session.disconnect();
    }
相关问题