> 网络管理 > ssh-agent

ssh-agent: SSH 认证代理

ssh-agent 是一个程序,它管理内存中加载的 SSH 私钥,并帮助 SSH 客户端在连接到远程服务器时自动处理身份验证,而无需重复输入密码或口令。这大大提高了 SSH 连接的安全性和便利性。

概述

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` 选项设置密钥的最大生存期。为了安全起见,不建议设置过长的生存期。

相同类别命令