运行 ssh-add -l 可查看当前 SSH 代理中已加载的密钥列表,包括位数、SHA256 指纹、路径和算法;需先确认 ssh-agent 正在运行,检查 $SSH_AUTH_SOCK 是否为本地路径以防密钥被远程转发。

直接运行 ssh-add -l 即可查看当前 SSH 代理中已加载的密钥列表。
确认 ssh-agent 正在运行
ssh-add 命令依赖于正在运行的 ssh-agent 进程。如果提示 “Could not open a connection to your authentication agent”,说明代理未启动或未正确关联:
- 检查是否已有 agent 运行:
echo $SSH_AGENT_PID或pgrep -u $USER ssh-agent - 若无输出,手动启动并注入环境变量:
eval $(ssh-agent)
列出已加载密钥及其指纹
执行以下命令:
ssh-add -l输出示例:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
256 SHA256:XyZ789def /home/user/.ssh/id_ed25519 (ED25519)
每行包含:密钥位数、SHA256 指纹、文件路径、算法类型。指纹是识别密钥真实性的关键依据。
快速验证代理归属与安全性
仅看 ssh-add -l 不够,还需确认该输出来自你本地的 agent,而非被转发的远程 agent:
- 在终端中运行
echo $SSH_AUTH_SOCK,应返回类似/tmp/ssh-XXXXXX/agent.XXXX的本地路径 - 若已在远程服务器上,且该变量非空,说明 agent 被启用了转发(ForwardAgent yes),此时你的本地密钥正暴露给远端
- 高风险场景(如跳板机)建议在 ~/.ssh/config 中显式设置
ForwardAgent no
清理或限制已加载密钥
发现异常密钥(路径陌生、算法过时、指纹不符)时,应及时干预:
- 清空所有已加载密钥:
ssh-add -D - 仅删除某一把:
ssh-add -d ~/.ssh/id_rsa - 加载时设置自动过期(例如 1 小时):
ssh-add -t 3600 ~/.ssh/id_ed25519

















