Chinaunix首页 | 论坛 | 博客
  • 博客访问: 282198
  • 博文数量: 57
  • 博客积分: 1764
  • 博客等级: 上尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 18:14
文章分类

全部博文(57)

文章存档

2012年(24)

2011年(33)

分类: LINUX

2011-11-10 20:46:30

  没学过密码学,但还是得补点相关知识。公钥认证,实际上就是使用一对加密字符串。一个叫做公钥,另一个叫密钥。公钥是公开的,都能看到,因此只能用于加密内容。密钥则只属于拥有者,用于解密经过公钥加密后的内容。
  公钥认证有什么用呢?1)密码容易被暴解或者猜测;2)多个用户共用一个帐户,人多容易泄漏密码,并且修改密码需要通知所有人;3)还有一种常见的情况,输入密码有个交互过程,这对跑脚本会造成不方便。
  下面主要分析第三种情况。可以利用expect,来解决脚本的交互,但在某些场合会有限制。例如:服务器上没有装expect库,而且没有安装库的权限,这种情况下就比较麻烦了。这时,可以考虑SSH的公钥认证方法。
  首先,使用ssh-keygen产生一对密钥和公钥,例如:
  ssh-keygen -t dsa 
  一路回车,会在主目录.ssh下产生id_dsa(密钥),id_dsa.pub(公钥)。将公钥拷贝到你要通信的服务器的~/.ssh/目录下,然后将内容拷贝到authorized_keys。
  cat id_dsa.put >> authorized_keys
  密钥也放在~/.ssh目录下,如果是用xshell工具的话,则在认证中导入该密钥即可。
阅读(720) | 评论(0) | 转发(0) |
0

上一篇:重定向输出 2>&1

下一篇:MD设备分析(一)

给主人留下些什么吧!~~