ssh-agent

通过认证代理为 SSH 客户端保管可用的签名身份。

执行前须知

macOS 可能已有系统代理,可先执行 ssh-add -l 检查。eval 示例适用于 zsh/bash,不适用于 PowerShell。仅在需要时创建独立代理,且只停止自己创建的代理。环境变量仅对当前 shell 及其子进程生效。不要随意启用代理转发(-A):远端受侵入时,攻击者可能在转发生效期间利用代理认证。

使用示例

启动独立代理,并在当前 shell 设置其环境。

eval "$(ssh-agent -s)"

停止上一步创建的独立代理,并清除相应 shell 变量。

eval "$(ssh-agent -k)"

参数与示例

-s常用

打印 Bourne 兼容的 shell 命令来设置代理环境变量;该示例适用于 sh 兼容的 shell。

示例
eval "$(ssh-agent -s)"
-c

打印 C-shell 命令而不是 Bourne-shell 命令。

示例
ssh-agent -c
-k常用

打印命令以停止当前环境识别的代理。仅停止您启动的代理。

示例
eval "$(ssh-agent -k)"
-t life

设置添加到代理的身份的默认有效期;ssh-add 可覆盖此设置。

示例
ssh-agent -t 1h
-a bind_address

将代理绑定到指定的Unix套接字路径;保护对该套接字的访问。

示例
ssh-agent -a /tmp/example-ssh-agent.sock
-D

在前台运行代理,适合由进程管理工具监控。

示例
ssh-agent -D

权威参考

核对日期:2026 年 10 月 27 日