中国开发网: 论坛: 程序员情感CBD: 贴子 603901
haitao
英文。。。。。。。没看明白。。。。。。。倒是让我想起rsa加密机制——也许英文就是这个意思?
你可以起一个很简单的密码k
工具产生一个比较长的随机数r,用k加密随机数r得到r'
——嗯,不行。。。。。。。情况不一样

搜了一下,好像是双方预先用一个密码生成存储一系列密码,双方都每次用一个:
——这样就要求双方严格一对一,象我这种多人互相加解密的,不行

一次性口令OPIE(FreeBSD)


口令用久了,就可能泄露,所以就有了一次性口令,用完就没用了。有没有想过强化一下你的ssh登陆呢?
原理:服务器维护一个不断变化的口令列表,这个列表是算出来的。你每次用一个口令,用什么口令是预定好的,用过就失效,轮到下一个口令你不必非记住每个口令,登陆时,系统会给你提示,根据提示,再根据你事先知道的一个密码,在安全的客户端算出口令,再用其登陆。

步骤:
1.初始化:需要初始化要登陆的系统的口令序列:
在你要使用的帐户的提示符下:
%opiepasswd -c -n 1000
Adding eliumao:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrasexxxx
Again new secret pass phrasexxxx

ID eliumao OTP key is 1000 el6652
LOB COCO DISK FAIN CRAG CAM

其中第一行中,-c是创建或初始化的意思,-n后面有个数字,是你要创建的口令序列的长度,用完还要重新初始化。默认是500个。
第七行,输入你的密码,这个密码是用来以后根据系统提示算密码的,或用来重新初始化。密码复杂些没有坏处。
第八行,再输入一遍密码。
成功。
下次想修改的话,直接用不带-c的命令就好了。

2.配置sshd_config使ssh使用opie的方式验证口令
(注意,如果你用的是6.0,那么就不用第2步的配置了!!!!!)
请安装/usr/ports/security/openssh-portable。别忘了在/etc/rc.conf里加上这一行:
sshd_program="/usr/local/sbin/sshd

/etc/ssh/sshd_config
--------------------------------------
ChallengeResponseAuthentication yes #这一行不要是no,默认是yes
--------------------------------------

3.配置PAM
(如果你用的是6.0,那么就不用第3步的配置了,相关配置文件的位置/etc/pam.d/sshd!!!!!)

以下是我的/etc/pam.conf中关于ssh的内容
--------------------------------------------------------------------------------
# OpenSSH with PAM support requires similar modules. The session one is
# a bit strange, though...
#sshd auth sufficient pam_skey.so
sshd auth sufficient pam_opie.so no_fake_prompts
sshd auth requisite pam_opieaccess.so
#sshd auth sufficient pam_kerberosIV.so try_first_pass
#sshd auth sufficient pam_krb5.so try_first_pass
sshd auth required pam_unix.so try_first_pass
sshd account required pam_unix.so
sshd password required pam_permit.so
sshd session required pam_permit.so
---------------------------------------------------------------------------------
注意,第三行,我屏蔽掉了skey方式
第四行,我设置成使用opie认证就足够了
第五行,我设置成opie认证通过是必须的,如果你还希望通过普通口令(UNIX系统口令)登陆,就不要这一行。
OK,大功告成

4.试试看
%ssh ssh.eliumao.com
otp-md5 451 gw0965 ext
Password:

这里的password是这样算的,在本地运行

%opiekey 451 gw0965
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrasexxxxxx
REIN BONN WAYS FILL CALF BRAD

注意,第一行,opiekey命令的参数就是ssh时这一行(otp-md5 451 gw0965 ext)得到的。
第四行,输入步骤1时那个secret pass phrase。
最后一行,得到的就是登陆要用的口令。

5.注意事项
显然,步骤1的那个口令的安全十分重要。产生时,最好通过安全的连接活着干脆就在服务器本地。算一次性口令时,也要注意是在安全的终端上。
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录