Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1088

SSH 代理转发

SSH 代理转发 是什么?

SSH 代理转发OpenSSH 的一项功能,使用 -A 或 ForwardAgent yes 启用,会在远程主机上暴露一个 UNIX 套接字,使远端命令可借助本地 SSH 代理完成对后续主机的认证。


SSH 代理转发允许用户在本地运行 ssh-agent,然后从一台服务器跳转到另一台,而无需拷贝私钥。当用户以 ForwardAgent yes 连接时,openssh 会在远程主机上创建一个 UNIX 域套接字(路径在 SSH_AUTH_SOCK 中),将签名请求代理回本地代理。风险在于:任何在远程主机上拥有 root 权限者都可以劫持该套接字,在用户会话期间以其名义对任意可达目标发起签名请求。matrix.org 在 2019 年的事件、GitHub.com 的供应链告警等高知名度事件推动了相关建议:优先使用 ProxyJump(-J)、短期 TTL 的 SSH 证书或硬件支持的密钥(FIDO ed25519-sk),并在不得不转发时配置 IdentityAgent 或要求 ssh-agent 在签名时弹出确认。

示例

  1. 01

    在跳板机上获得 root 的攻击者利用 SSH_AUTH_SOCK,以用户身份对下游生产服务器发起认证签名。

  2. 02

    用 ssh -J jump admin@target 代替 ssh -A admin@jump,使私钥永远不到达跳板机。

常见问题

SSH 代理转发 是什么?

OpenSSH 的一项功能,使用 -A 或 ForwardAgent yes 启用,会在远程主机上暴露一个 UNIX 套接字,使远端命令可借助本地 SSH 代理完成对后续主机的认证。 它属于网络安全的 网络安全 分类。

SSH 代理转发 是什么意思?

OpenSSH 的一项功能,使用 -A 或 ForwardAgent yes 启用,会在远程主机上暴露一个 UNIX 套接字,使远端命令可借助本地 SSH 代理完成对后续主机的认证。

SSH 代理转发 是如何工作的?

SSH 代理转发允许用户在本地运行 ssh-agent,然后从一台服务器跳转到另一台,而无需拷贝私钥。当用户以 ForwardAgent yes 连接时,openssh 会在远程主机上创建一个 UNIX 域套接字(路径在 SSH_AUTH_SOCK 中),将签名请求代理回本地代理。风险在于:任何在远程主机上拥有 root 权限者都可以劫持该套接字,在用户会话期间以其名义对任意可达目标发起签名请求。matrix.org 在 2019 年的事件、GitHub.com 的供应链告警等高知名度事件推动了相关建议:优先使用 ProxyJump(-J)、短期 TTL 的 SSH 证书或硬件支持的密钥(FIDO ed25519-sk),并在不得不转发时配置 IdentityAgent 或要求 ssh-agent 在签名时弹出确认。

如何防御 SSH 代理转发?

针对 SSH 代理转发 的防御通常结合技术控制与运营实践,详见上方完整定义。

SSH 代理转发 还有哪些其他名称?

常见的别称包括: ForwardAgent, ssh -A。

相关术语