ssh-add

向既有认证代理添加身份、查看身份或移除身份。

执行前须知

需要通过 SSH_AUTH_SOCK 访问到代理。“没有身份”与“无法连接代理”是不同情况。-t 限定身份在代理中的存留时间,不会删除密钥文件或让密钥本身过期。移除代理中的身份不会撤销服务器授权,也不会删除钥匙串中保存的项目。

使用示例

加载私钥一小时;需要时输入私钥口令。

ssh-add -t 1h ~/.ssh/id_ed25519

列出代理中已加载身份的指纹。

ssh-add -l

从代理移除此身份,保留磁盘上的密钥文件。

ssh-add -d ~/.ssh/id_ed25519

参数与示例

identity_file常用

将私钥添加到代理,并在需要时提示输入其密码。

示例
ssh-add ~/.ssh/id_ed25519
-l / -L常用

列出代理当前持有的指纹或公钥。

示例
ssh-add -l
-t life常用

限制身份在代理中保留的时间;不会使密钥本身过期或撤销。

示例
ssh-add -t 1h ~/.ssh/id_ed25519
-d identity_file常用

从代理中移除一个身份;不会撤销服务器上的授权。

示例
ssh-add -d ~/.ssh/id_ed25519
-D

删除当前代理的所有身份,而不删除密钥文件。

示例
ssh-add -D
-c

使用添加的身份之前需要确认;需要适当的确认程序。

示例
ssh-add -c ~/.ssh/id_ed25519
-x / -X

以交互方式锁定或解锁代理。

示例
ssh-add -x
-T public_key

测试代理是否可以使用对应的私钥。

示例
ssh-add -T ~/.ssh/id_ed25519.pub

权威参考

核对日期:2026 年 10 月 27 日