使用ssh和sftp通过Java连接到Unix

我需要通过SSHSFTP协议使用Java连接到Unix服务器并执行特定命令并执行文件传输。 但是在Unix上启用了RSA令牌认证。 所以我需要在运行时获取当前的RSA令牌密码以及用户密码。 那么如何通过Java完成这项工作呢? 是否有任何Java API?

仅供参考,Unix使用putty登录步骤:

  1. 使用服务器IP连接。
  2. 项目清单
  3. 给用户名。
  4. 给密码
  5. 给出6位数的SecurID生成的数字。

这听起来像键盘交互式身份validation。 在此身份validation机制中,服务器向用户询问用户必须响应的问题。 任何数量的问题都是可能的,它们的顺序由服务器定义。

许多服务器都使用键盘交互式身份validation,但它通常会缩减为要求输入密码,因此大多数声称支持此身份validation方法的软件只会输入密码作为答案。

我不知道免费的Java库是否支持多个问题的键盘交互式身份validation。 我们的SecureBlackbox类有一个事件可以将问题传递给应用程序,应用程序可以自己提供答案或要求操作人员提供答案。