FreeBSD handbook中文版 10 安全(11) 10.5.3 产生一个简单的一次性密码 一旦你初始化你S/key,当你登陆时,你会看到下面的命令行: % telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> s/key 97 fw13894 Password: 另外,S/key 有一个很有用的特性:如果你在密码行键入return 键,登陆程序将会把 键入的密码显示出来,所以你可以看到你键入的密码。如果你试图手工键入一个S/key,这 个非常有用。如果这台机器被配置成通过一个来自源机器的连接不接受unix 密码,命令行 也将包括注意(S/key 必须),指出只有s/key 一次性密码将被接受。 基于这点,你必须产生你的一次性密码来回答这个登陆命令。这必须在一个可以运行密 码命令的可信任的系统上做。密码程序既需要反复计算数和种子,也需要命令行选项。你可 以从你登陆的机器的命令行剪切和粘贴这些选项。 在可信任的系统上: % key 97 fw13894 FreeBSD 使用手册 第15 页FreeBSD 使用手册 Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: WELD LIP ACTS ENDS ME HAAG 现在,你已经有了可以继续登陆的一次性密码: login: <username> s/key 97 fw13894 Password: <return to enable echo> s/key 97 fw13894 Password [echo on]: WELD LIP ACTS ENDS ME HAAG Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... 如果你有一个可信任的系统,这是最容易的机制。有一个Java S/key 密码小程序,The Java OTP Calculator,你可以下载和在本地支持java 的浏览器中运行。 10.5.4 产生多个一次性密码 有时,你会来到你不能访问一个可信任的机器或安全连接的地方。在这个例子中,可以 使用密码命令来产生许多一次性密码,例如: % key -n 5 30 zz99999 Reminder - Do not use this program while logged in via telnet or rlogin.