我的公司使用 OTP over ssh(一次性密码)来访问我们的生产机器。交互可能如下所示:
$ ssh prod
otp-md5 942 st9621 extResponse:
此时,我运行一个 Java 程序,使用从 SSH 获得的信息生成 OTP 响应。 注意:来自 ssh 输出的哈希(本例中为“942 st9621”)必须作为输入传递给下面的命令。每次 ssh 时,此哈希都会更改。
$ java -jar jop.jar 942 st9621 <password>
LAD DARN BHOY TEST ACHE JUTE
现在我将生成的 OTP(“LAD DARN BHOY TEST ACHE JUTE”)剪切并粘贴到另一个控制台窗口中。
所以,只是为了让一切清楚:我在运行 jop 时需要使用从 ssh 命令生成的数据和我的密码,然后将结果传递回仍在运行的 ssh 命令。
我很想自动化这个过程。基本上,有一个 bash 脚本,它需要一个主机名,要求输入密码,然后调用 ssh,将 otp-md5 代码传递给 jop,然后将 OTP 传递回 ssh。一个不错的选择是不必输入我的密码作为命令行参数,因为这将存储在命令历史记录中,这是一个很大的安全问题。
这可能吗?
谢谢