我有启用了 SSH 的 Linux 手机。我需要通过质询-响应身份验证连接到它。那么这个过程看起来如何手动,例如,使用 PuTTY:
使用 IP 和端口连接到手机。
控制台显示“登录为:”-> 输入用户名。
控制台显示:
login as: craft
Challenge: 547-04302
Product ID: 7000315107Response:
我需要复制 Challenge,使用 Challenge 从其他服务器获取 Response,然后在控制台中输入 Response。
我如何使用 Java 和一些用于 SSH 的库来做到这一点(我试过 JSch,但没有挑战-响应方法)?我只需要将Challenge写入String,然后使用String response输入Response。
感谢您的帮助。
最佳答案
挑战-响应认证也称为键盘交互认证。
并且它得到了 JSch 库的支持。
基本上你需要实现 UIKeyboardInteractive
interface (与 UserInfo
interface 一起)并使用 Session.setUserInfo
将实现与 session 相关联.
要对单个挑战使用程序化响应,只需从 UIKeyboardInteractive.promptKeyboardInteractive
method 的 prompt[0]
参数中收集挑战并返回带有响应的单个元素数组。
关于java - 如何使用 Java 自动化质询-响应身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329330/