如何使用Java自动化质询 - 响应身份验证

时间:2015-12-17 07:54:35

标签: java ssh automation jsch challenge-response

我有启用SSH的Linux手机。我需要通过质询 - 响应身份验证连接到它。那么如何手动查看此过程,例如,使用PuTTY:

  1. 使用IP和端口连接到手机。

  2. 控制台显示“登录为:” - >输入用户名。

  3. 控制台显示:

      

    登录为:craft

         

    挑战:547-04302
      产品编号:7000315107

         

    响应:

  4. 我需要复制Challenge,使用Challenge从其他服务器获取响应,并在控制台中输入Response。

  5. 我如何使用Java和SSH的一些库(我尝试过JSch,但没有挑战响应的方法)?我只需要将Challenge写入String,然后使用String响应输入Response。

    感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

质询 - 响应身份验证也称为键盘交互式身份验证。

它受JSch库支持。

见官方JSch UserAuthKI example

基本上,您需要实施UIKeyboardInteractive interface(与UserInfo interface一起)并使用Session.setUserInfo将实施与会话相关联。

要对单个挑战使用程序化响应,只需从UIKeyboardInteractive.promptKeyboardInteractive methodprompt[0]参数中收集挑战,然后返回带有响应的单个元素数组。