当把私钥交给 ssh agent 管理的好处
当 其他程序 需要身份验证的时候 可以将验证申请交给 ssh-agent 来完成整个认证过程。使用不同的密钥连接到不同的主机时,需要要手动指定对应的密钥,而ssh代理可以自动帮助我们选择对应的密钥进行认证。
避免重复输入密码:如果您的私钥使用密码短语来加密了的话,每一次使用 SSH 密钥对进行登录的时候,您都必须输入正确的密码短语。而 SSH agent 程序能够将您的已解密的私钥缓存起来,在需要的时候提供给您的 SSH 客户端。这样子,您就只需要在使用 ssh-add
时将私钥加入 SSH agent 缓存的时候,输入一次密码短语就可以了。这为经常使用 SSH 连接用户提供了不少便利。
sh-agent
命令:是客户端ssh的默认代理
ssh-agent $SHELL
:它会在当前 shell 中启动一个默认 shell,作为当前 shell 的子 shell,ssh-agent 会在子shell中运行;也可以明确指定 $SHELL
,比如 ssh-agent bash
, ssh-agent
会随者当前 ssh 会话的结束而结束,这是一种安全机制。
但是测试发现,如果连接突然中断,agent会又1号进程接管
运行 ssh agent 以后,会加载默认的私钥
ssh-agent $SHELL
如果有多个密钥,则需要在 ~/.ssh/config
中进行配置:
- 一般来说 ssh agent 程序可以根据配置自动加载并管理这些密钥;但如果发现某个密钥没有加载则
- 也可以手动使用
ssh-add
命令将某个私钥交给 ssh-agent 保管,
运行 ssh-add
时, 如果提示 “Could not open a connection to your authentication agent.” 说明你的ssh-agent
并没有运行;使用下面的命令运行ssh agent,再使用ssh-add
命令添加你的ssh key。
配置ssh-agent
删除加载的密钥
标签:缓存,私钥,密钥,agent,shell,SSH,ssh From: https://www.cnblogs.com/outsrkem/p/16881622.html