启动 ssh-agent 并添加 SSH 密钥
把带口令的 SSH 私钥加载到代理中,之后 git push 和 ssh 连接都不用再输口令。
先运行 eval $(ssh-agent) 在当前会话启动代理,再运行 ssh-add ~/.ssh/id_ed25519,输入一次口令即可。
01命令
命令
$ eval $(ssh-agent) && ssh-add ~/.ssh/id_ed2551902作用说明
ssh-agent 把解密后的私钥保存在内存里,替 ssh 和 git 回应认证请求。eval $(ssh-agent) 会设置当前 shell 访问代理所需的环境变量,随后 ssh-add 只需输入一次口令。此后每次 ssh 连接和 git push 都会自动使用缓存的密钥。可以把 IdentityFile ~/.ssh/id_ed25519 写进 ~/.ssh/config,或设置桌面自启动,让代理随时可用。
03风险
!注意: 代理是按会话运行的——新开的终端可能继承不到;只要 SSH_AUTH_SOCK 指向已存在的代理,直接 ssh-add 即可。ssh-add -D 会清空所有缓存的密钥。不要用 root 运行 ssh-agent,也不要在用户之间共享代理套接字(代理转发同理)。
04撤销
撤销
$ ssh-add -D && eval $(ssh-agent -k)05来源
- ssh-agent(1) - OpenBSD manual pages依据: ssh-agent holds private keys used for public key authentication; ssh-add adds keys and -D deletes all identities from the agent.
- SSH keys - ArchWiki依据: Documents starting ssh-agent with eval $(ssh-agent), adding keys with ssh-add, and keychain/agent forwarding for persistence.
最后验证: 2026-09-18 · 分类: 安全与隐私