启动 ssh-agent 并添加 SSH 密钥

把带口令的 SSH 私钥加载到代理中,之后 git push 和 ssh 连接都不用再输口令。

LinuxSSH 远程连接ssh-agent 密钥代理认证密钥低风险
先运行 eval $(ssh-agent) 在当前会话启动代理,再运行 ssh-add ~/.ssh/id_ed25519,输入一次口令即可。

01命令

命令
$ eval $(ssh-agent) && ssh-add ~/.ssh/id_ed25519

02作用说明

ssh-agent 把解密后的私钥保存在内存里,替 ssh 和 git 回应认证请求。eval $(ssh-agent) 会设置当前 shell 访问代理所需的环境变量,随后 ssh-add 只需输入一次口令。此后每次 ssh 连接和 git push 都会自动使用缓存的密钥。可以把 IdentityFile ~/.ssh/id_ed25519 写进 ~/.ssh/config,或设置桌面自启动,让代理随时可用。

03风险

风险低风险
使用条件openssh-client; a key with a passphrase. Most desktop environments start an agent automatically — use ssh-add directly if SSH_AUTH_SOCK is set.
!注意: 代理是按会话运行的——新开的终端可能继承不到;只要 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
    man7.org · community · 2026-09-17
    依据: 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
    Arch Wiki · community · 2026-09-17
    依据: Documents starting ssh-agent with eval $(ssh-agent), adding keys with ssh-add, and keychain/agent forwarding for persistence.

最后验证: 2026-09-18 · 分类: 安全与隐私