我需要通过SSH和SFTP协议使用Java连接到 Unix 服务器并执行特定命令并执行文件传输。但是在 Unix 上启用了 RSA 令牌身份验证。所以我需要获取当前的RSA 令牌密码以及用户密码。那么如何通过 Java 完成这项工作呢?有这方面的Java API吗?
仅供参考,使用 putty 的 Unix 登录步骤:
- 使用服务器 IP 连接。
- 项目清单
- 给出用户名。
- 给密码
- 给出 6 位 SecurID 生成的号码。
这听起来像键盘交互式身份验证。在这种身份验证机制中,服务器向用户提出一个问题,用户必须对此做出回应。任何数量的问题都是可能的,它们的顺序由服务器定义。
许多服务器都使用键盘交互式身份验证,但它通常简化为要求输入密码,因此大多数声称支持此身份验证方法的软件只会输入密码作为答案,仅此而已。
我不知道免费的 Java 库是否支持带有多个问题的键盘交互式身份验证。我们的SecureBlackbox类有一个将问题传递给应用程序的事件,应用程序可以自己提供答案,也可以要求人工操作员提供答案。