ssh-add
向 SSH 认证代理(ssh-agent)添加或管理私钥
语法
ssh-add [options] [keyfile...]
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
-l |
列出 agent 中所有密钥的指纹 | ssh-add -l |
常用 |
-L |
列出 agent 中所有密钥的公钥 | ssh-add -L |
常用 |
-d |
从 agent 中移除指定密钥 | ssh-add -d ~/.ssh/id_ed25519 |
常用 |
-D |
从 agent 中移除所有密钥 | ssh-add -D |
进阶 |
-t |
设置密钥有效期(秒) | ssh-add -t 3600 ~/.ssh/id_ed25519 |
进阶 |
-K |
将密钥存入 macOS 钥匙串 | ssh-add --apple-use-keychain ~/.ssh/id_ed25519 |
进阶 |
示例
添加默认密钥
ssh-add
自动添加 ~/.ssh/id_rsa、id_ed25519 等默认密钥
添加指定密钥
ssh-add ~/.ssh/work_key
添加非默认路径的私钥到 agent
查看已加载密钥
ssh-add -l
显示所有已加载密钥的指纹和路径
设置密钥自动过期
ssh-add -t 28800 ~/.ssh/id_ed25519
8 小时后自动从 agent 移除,适合工作时间使用
常见错误
Could not open a connection to your authentication agent
ssh-agent 未运行,先执行 eval $(ssh-agent -s)
Identity added but agent refused operation
agent 可能配置了密钥数量限制,用 ssh-add -D 清除后重新添加
技巧
- macOS Ventura+ 使用 ssh-add --apple-use-keychain 代替已废弃的 -K 参数
- 设置 AddKeysToAgent yes 在 ~/.ssh/config 中可以首次使用时自动添加
- 离开工位时用 ssh-add -D 清除所有密钥是个好习惯