【发布时间】:2012-03-01 20:38:54
【问题描述】:
我的公司使用 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。一个很好的办法是不必输入我的密码作为命令行参数,因为这将存储在命令历史记录中,这是一个很大的安全问题。
这可能吗?
谢谢
【问题讨论】:
-
如果您希望一切自动化,您应该真正考虑使用 SSH 密钥而不是 OTP。
-
是的,我无法控制我们的设置。我只是一个卑微的用户,试图耸耸肩和微笑;)。
标签: bash ssh one-time-password