ssh-agent

SSH 认证代理,在内存中保存解密后的私钥,避免重复输入密钥密码

语法

eval $(ssh-agent -s)
ssh-add [keyfile]

参数

参数说明示例级别
-s 生成 Bourne shell 命令输出 eval $(ssh-agent -s) 常用
-k 终止当前 agent 进程 ssh-agent -k 常用
-t 设置密钥在 agent 中的生存时间 ssh-add -t 3600 ~/.ssh/id_ed25519 进阶
-A ForwardAgent SSH 连接时转发 agent(配置文件中) ssh -A user@host 进阶
-l 列出 agent 中已加载的密钥 ssh-add -l 常用

示例

启动 agent 并添加密钥

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_ed25519
输入一次密码后,后续 SSH 操作不再需要密码

查看已加载的密钥

ssh-add -l
列出 agent 中所有已加载的密钥指纹

设置密钥有效期

ssh-add -t 7200 ~/.ssh/id_ed25519
密钥在 agent 中保留 2 小时后自动移除

转发 agent 到远程服务器

ssh -A user@bastion-host
在跳板机上可以使用本地的密钥继续连接其他服务器

常见错误

Could not open a connection to your authentication agent agent 未启动,执行 eval $(ssh-agent -s) 启动
The agent has no identities agent 中没有密钥,用 ssh-add 添加私钥

技巧

相关命令