5月30日 20:53

SSH Agent 是什么?如何安全管理私钥和转发认证?

SSH Agent 是替你保管“已解锁私钥”的本地进程。它不会把私钥直接交给 ssh、git 或远程主机,而是在需要认证时完成签名,所以你不用每次连接都输入密钥密码。它解决效率问题,但 Agent 转发用错会放大安全风险。

追问

SSH Agent 和私钥文件是什么关系?

私钥文件仍在磁盘上,Agent 只是把解锁后的密钥能力暂存在内存里。认证时 Agent 用私钥签名,不返回私钥内容。

为什么不建议全局开启 ForwardAgent?

远程机器可能使用转发过来的 agent socket。它偷不走私钥,但能在会话有效时冒用你的身份连接其他服务。

Agent 转发和 ProxyJump 怎么选?

只是通过跳板机连接内网服务器,用 ProxyJump 更干净。只有登录跳板机后还要 git pull 或 ssh internal,才考虑 Agent 转发。

ssh-add 没有 identities 怎么办?

说明 agent 正常但没加密钥。执行 ssh-add ~/.ssh/id_ed25519,再用 ssh-add -l 确认。

写段命令

bash
eval "$(ssh-agent -s)" ssh-add -t 3600 ~/.ssh/id_ed25519 ssh-add -l ssh-add -D
标签:SSH