概述
ssh-agent 安全地存储 SSH 私钥,并在需要时将其提供给 SSH 客户端 (ssh),从而简化了身份验证过程。一旦输入了口令,在代理运行期间就不需要再次输入,非常方便。这对于经常使用多个 SSH 连接的环境尤其有用。
主要功能
- SSH 密钥管理和存储
- 防止重复输入口令
- 与 SSH 客户端的安全通信
- 基于会话的密钥维护
主要选项
ssh-agent 主要在后台运行,通过设置 shell 环境变量来使 SSH 客户端能够找到代理。
启动和控制
生成的命令:
请尝试组合命令。
描述:
`ssh-agent` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
启动 ssh-agent (bash/sh)
eval "$(ssh-agent -s)"
在后台启动 ssh-agent,并为当前 shell 会话设置所需的环境变量。
添加 SSH 密钥
ssh-add ~/.ssh/id_rsa
将私钥添加到 ssh-agent。如果密钥有口令,此时需要输入一次。
终止代理
ssh-agent -k
终止当前 shell 会话连接的 ssh-agent 进程。
以 1 小时密钥生存期启动代理
eval "$(ssh-agent -s -t 3600)"
设置添加到代理的所有密钥的最大生存期为 1 小时(3600 秒)后启动。
查看当前代理加载的密钥列表
ssh-add -l
查看当前加载到 ssh-agent 中的 SSH 密钥列表。
提示与注意事项
有效使用 ssh-agent 并保持安全性的提示。
提示
- **自动启动**: 可以在 `.bashrc` 或 `.zshrc` 文件中添加 `eval "$(ssh-agent -s)"`,以便在 shell 启动时自动运行代理。建议添加逻辑以检查是否已有正在运行的代理。
- **查看密钥列表**: 可以使用 `ssh-add -l` 命令查看当前加载到 ssh-agent 中的 SSH 密钥列表。
- **删除密钥**: 可以使用 `ssh-add -d ~/.ssh/id_rsa` 删除特定密钥,或使用 `ssh-add -D` 删除所有密钥。
注意事项
- **代理转发**: 使用 `ssh -A` 选项进行代理转发时,远程服务器将能够访问本地代理。这虽然方便,但如果远程服务器被破坏,本地密钥有暴露的风险,因此应仅在可信服务器上使用。
- **代理生存期**: 可以使用 `ssh-agent -t` 选项设置密钥的最大生存期。为了安全起见,不建议设置过长的生存期。