rmdir.cn

ssh-agent 与 ssh-add

在会话中缓存私钥口令

语法

eval "$(ssh-agent -s)" && ssh-add ~/.ssh/私钥

说明

适用于为私钥设置了口令、又不想每次连接都输入的场景。ssh-agent 在后台保存已解密的私钥,ssh-add 负责把密钥加入代理。代理进程的生命周期与登录会话相关,退出登录后缓存通常失效;在共享主机上使用代理需要评估同用户其他进程是否能复用该代理。

参数

  • -l

    列出代理中已加载的密钥指纹

  • -D

    清空代理中所有密钥

  • -t

    设置密钥在代理中的存活时间

示例

启动代理并加载密钥

桌面环境下通常会由会话自动启动代理。

eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_ed25519_deploy

注意事项:eval 是必需的,它把代理的环境变量导入当前 shell;直接执行 ssh-agent 只会打印变量。

查看与清理已加载密钥

确认代理中持有哪些密钥。

ssh-add -l && ssh-add -D

注意事项:在不属于自己的机器上使用完代理后应及时清空,避免私钥被同机其他进程调用。

参考资料