OpenSSH 密钥管理:ssh-agent和keychain
2009-01-19 13:51:04 来源:WEB开发网启动 ssh-agent 的最佳方式就是把上面这行添加到您的 ~/.bash_profile 中;这样,在您的登录 shell 中启动的所有程序都将看到环境变量,而且能够定位 ssh-agent ,并在需要的时候向其查询密钥。尤其重要的环境变量是 SSH_AUTH_SOCK;SSH_AUTH_SOCK 包含有 ssh 和 scp 可以用来同 ssh-agent 建立对话的 UNIX 域套接字的路径。
使用 ssh-add
但是 ssh-agent 启动时高速缓存当然是空的,里面不会有解密的专用密钥。在我们真能使用 ssh-agent 之前,首先还需要使用 ssh-add 命令把我们的专用密钥添加到 ssh-agent 的高速缓存中。下面的示例中,我使用 ssh-add 把我的 ~/.ssh/identity 专用 RSA 密钥添加到 ssh-agent 的高速缓存中:
# ssh-add ~/.ssh/identity
Need passphrase for /home/drobbins/.ssh/identity
Enter passphrase for /home/drobbins/.ssh/identity
(enter passphrase)
正如您所看到的, ssh-add 要我的密码短语来对专用密钥进行解密并存储在 ssh-agent 的高速缓存中以备使用。一旦您已经用 ssh-add 把专用密钥(或多个密钥)添加到 ssh-agent 的高速缓存中, 并在当前的 shell 中(如果您在 ~/.bash_profile 中启动 ssh-agent ,情况应当是这样)定义 SSH_AUTH_SOCK,那么您可以使用 scp 和 ssh 同远程系统建立连接而不必提供密码短语。
ssh-agent 的不足之处
ssh-agent 确实棒,但是其缺省配置还是会留给我们一些小小的不便。让我们来看一下这些不足吧。
首先,~/.bash_profile 中的 eval `ssh-agent` 使每次登录会话都会启动一个新的 ssh-agent 副本;这不仅仅是有一丁点儿浪费,而且还意味着您得使用 ssh-add 向每个新的 ssh-agent 副本添加专用密钥。如果您只想打开系统上的一个终端或控制台,这没什么大不了的,但是我们中大多数人打开相当多的终端,每次新打开控制台都需要键入密码短语。从技术角度讲,既然一个 ssh-agent 进程的确应当足够了,要是我们还需这样做,这毫无道理。
- ››管理/var/spool/clientmqueue/下的大文件
- ››管理私有云,第 2 部分: 使用 WebSphere CloudBur...
- ››管理 Eclipse 环境:Eclipse 维护的神秘艺术
- ››管理私有云:WebSphere CloudBurst Appliance 命令...
- ››管理启动项 - Windows 7中的BCDEDIT命令
- ››管理Exchange 2003注意事项
- ››OpenSSH 密钥管理:ssh-agent和keychain
- ››管理好超级管理员帐户堵住系统漏洞
- ››管理数据中心资源池需要注意的事项
- ››管理虚拟化环境的两大重要标准:VMAN和OVF
- ››管理与技术有机结合 保障网络安全运行
- ››管理Windows内部数据库(MICROSOFT##SSEE)实例
更多精彩
赞助商链接