省时省力—在Linux系统上进行自动备份(4)
文章作者 100test 发表时间 2007:03:14 16:28:34
来源 100Test.Com百考试题网
使用 keychain 简化密钥访问
到现在为止,我们已经了解了几个 OpenSSH 程序(ssh、scp、ssh-agent 和 ssh-add),而且我们已经创建并安装了私钥和公钥来启用一个安全而且自动的登录过程。您可能已经意识到,大部分设置工作只需要进行一次。例如,创建密钥、安装密钥、通过 .bash_profile 执行 ssh-agent 的过程在每台机器只需要进行一次。那真是好消息。
不太理想的消息是,我们每次登录到离线的机器上时,都必须调用 ssh-add,而且,ssh-agent 与我们将要用来自动化备份工作的 cron 调度进程并不直接兼容。cron 进程不能与 ssh-agent 通信的原因是,cron 作业是作为 cron 的子进程来执行,这样它们就不会继承 $SSH_AUTH_SOCK shell 变量。
幸运的是,有一个解决方案不但可以消除 ssh-agent 和 ssh-add 的局限,而且可以让我们使用 cron 来自动进行各种需要对其他机器进行安全地无密码访问的过程。在他 2001 年发表的三篇 developerWorks 系列文章中,即 OpenSSH key management(参阅 参考资料 以获得链接),Daniel Robbins 介绍了一个名为 keychain 的 shell 脚本,它是 ssh-add 和 ssh-agent 的一个前端,简化了整个无密码的过程。随着时间的过去,keychain 脚本已经经历了很多改进,现在由 Aron Griffis 维护,其最新的 2.3.2-1 发布版本公布于 2004 年 6 月 17 日。
keychain shell 脚本太长以致于无法在本文中列出,因为精心编写的脚本中包括了很多错误检测、丰富的文档以及非常多的跨平台代码。不过,keychain 可以自项目的 Web 站点上方便地下载得到(参阅 参考资料 以获得链接)。
下载并安装了 keychain 后,使用它就很简单了。只需要登录到每台机器并将下面两行添加到每个 .bash_profile 文件:
keychain id_dsa
. ~/.keychain/$HOSTNAME-sh |