RSA/DSA 密钥的工作原理
Linux 工作站(称作 localbox)打开 remotebox 上的一个远程 shell
ssh
处理认证的缺省方式:
% ssh drobbins@remotebox drobbins@remotebox's password:
输入 remotebox 上的 drobbins 这个帐户的密码。如果我们输入我们在 remotebox 上的密码,ssh
就会用安全密码认证协议,把我们的密码传送给 remotebox 进行验证。但是,和telnet
的情况不同,这里我们的密码是加密的,因此它不会被偷看到我们的数据连接的人截取。
RSA 或者 DSA 认证:
我们要执行一步一次性的配置步骤。我们把公用密钥拷贝到 remotebox。公用密钥用于对消息进行加密,专用密钥只能用于对由匹配的公用密钥编码的消息进行解密。
在 localbox 的控制台键入 ssh drobbins@remotebox
,Remotebox 的 sshd
会生成一个随机数,并用我们先前拷贝过去的公用密钥对这个随机数进行加密。然后, sshd
把加密了的随机数发回给正在 localbox 上运行的 ssh
。localbox的 ssh
用专用密钥对这个随机数进行解密后,再把它发回给 remotebox,这样sshd
得出结论,既然我们持有匹配的专用密钥,就应当允许我们登录。
RSA:
% cat identity.pub >> ~/.ssh/authorized_keys
DSA:
cat identity.pub >> ~/.ssh/authorized_keys2
http://www.ibm.com/developerworks/cn/linux/security/openssh/part1/index.html