ssh 协议的版本 1 使用的是 RSA 密钥,而 DSA 密钥却用于协议级 2,这是 ssh 协议的最新版本。目前所有的 OpenSSH 版本都应该既能使用 RSA 密钥又能使用 DSA 密钥。DSA 密钥以如下类似于 RSA 密钥的方式使用 OpenSSH 的 ssh-keygen 生成:
% ssh-keygen -t dsa
又会提示我们输入密码短语。输入一个安全的密码短语。还会提示我们输入保存 DSA 密钥的位置。正常情况下,缺省的 ~/.ssh/id_dsa 和 ~/.ssh/id_dsa.pub 就可以了。在我们一次性生成 DSA 密钥完成后,就该把我们的 DSA 公用密钥安装到远程系统上去了。
DSA 公用密钥的安装又是几乎和 RSA 安装完全一样。对于 DSA,我们将要把 ~/.ssh/id_dsa.pub 文件拷贝到 remotebox,然后把它附加到 remotebox 上的 ~/.ssh/authorized_keys2 文件。请注意这个文件的名字和 RSA 的 authorized_keys 文件名不同。一旦配置完毕,输入我们的 DSA 专用密钥的密码短语就应该能登录到 remotebox,而不需要我们输入在 remotebox 上真正的密码。
此刻,您应该已经可以使用 RSA 或者 DSA 认证了,但是在每一次新连接时,您仍需输入您的密码短语。在我的下一篇文章里,我们将会了解到如何使用 ssh-agent,它确实是一个很不错的系统,不仅允许我们不提供密码就建立连接,而且还使我们的专用密钥可以在磁盘上保持加密状态。我还将介绍 keychain,它是一个非常方便的 ssh-agent 前端,可以使 ssh-agent 比以前更可靠、更方便而且使用起来更具趣味性。
“ 通用线程:OpenSSH 密钥管理,第 1 部分”( developerWorks,2001 年 7 月)涵盖了 RSA/DSA 认证。“ 通用线程:OpenSSH 密钥管理,第 2 部分”( developerWorks,2001 年 9 月)介绍了 ssh-agent 和 keychain。 “ 通用线程:OpenSSH 密钥管理,第 3 部分”( developerWorks,2001 年 9 月)介绍了 代理程序转发和 keychain 改进。
在 Gentoo Linux Keychain 页面上可以获得 keychain 的最新版本 。
请务必访问 OpenSSH 的开发主页,并查阅 OpenSSH 常见问题解答。
您可以从 Openbsd.org 下载最新的 OpenSSH 源码 tarball 和 RPM。
PuTTY是用于 Windows 机器上的一个出色的 ssh 客户程序。