利用OpenSSH version 5.4 设置证书授权密钥
作者:Michael Brown E 自去年推出的数个版本开始,OpenSSH提供一个有趣的新特性,即支持证书授权.这是一个非常有用并且易于实施的选项,但它会带来一些小小的麻烦,它还非常新颖,难以找到任何验证文档.本文的目的是举例说明如何设置证书授权密钥,提供一些有帮助的说明.您可以从中看出该过程是多么的简单. 这是怎样的一种特性? 长期以来,传统的OpenSSH支持创建用于个人账户登陆的公共密钥和私有密钥对.其主要特点是:每个用户密钥的公共部分被拷贝到您所希望登入的服务器.这多少会成为管理或审计的负担.而全新的证书授权(Certificate Authority,CA)特性则能减轻该负担.它允许管理员将单一的CA密钥拷贝到每台服务器,然后,该服务器允许CA所签发的任何用户密钥登入自身,从而大大简化每台服务器的管理工作. CA特性可用于用户认证和主机认证.本博文将举出一个用户认证的例子.主机认证的方式与之非常相似,您可从参考资料中看到具体例子.主机认证的有用之处在于:无需接受每台主机密钥,即可确保所有主机的真实有效性得到验证.每个ssh用户都熟悉这样的提升消息“无法确立主机‘ABC (10.0.0.2)’的真实有效性”(The authenticity of host ''ABC (10.0.0.2)'' can''t be established),它往往在您首次登入一台机器时弹出来.而CA主机密钥可让这条消息不再出现. 设置一个CA密钥 要做的就是设置您的CA密钥.其创建方法跟任何普通ssh密钥相同,使用ssh-keygen命令,以及使用您常用于普通密钥的任何选项. 创建您的CA密钥:
将您的服务器设置为信任该CA密钥.您可以逐个账户这样做,也可以对整台服务器这样做.
(个别账户):为了让您的CA所签发的任何密钥能够登陆某个特定账户,您可使用已有的~/.ssh/authorized_keys文件.您只需置入CA公共密钥,但要给它加上前缀“cert-authority”指令.以下指出了如何用一个命令实现这一点:
(整台服务器):为了让您的CA密钥所签发的用户密钥能够登入系统上的任何(*)账户,只需向您的/etc/ssh/sshd_config文件增加命令行“TrustedUserCAKeys /etc/ssh/user-ca-key.pub”,然后将user-ca-key.pub文件拷贝到服务器上的/etc/ssh/.(*)当您用CA密钥签发个别密钥时,您可以指定允许该密钥登入的账户的清单,这样,您就可以控制哪些用户能够登入哪些账户. (可选):如果您还没有普通用户密钥,则创建一个吧.这步遵循创建密钥的正常过程,当然您也可以使用您所拥有的任何已存在的密钥.注:既然我们使用CA登入,我们不再需要将公共密钥拷贝到服务器,这正是我们想要达到的目的.
使用CA密钥签发用户密钥.
注:
现在您可使用用户密钥登入服务器.ssh客户端程序将自动使用它所找到的-cert.pub文件,向服务器发送证书信息.
安全性 全新的CA密钥使用口令加以保护,并保存在安全的位置.如果任何第三方得到该密钥,他们可以使用CA无限制地访问任何机器. 当前OpenSSH CA的局限性 一直以来,CA被视为多级实体,其中,由顶级授权体签发个别证书,个别证书又可以反过来签发子实体证书.OpenSSH当前不支持多 |
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |