ssh 代理-缓存ssh私钥

当把私钥交给 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 会话的结束而结束,这是一种安全机制。

但是测试发现,如果连接突然中断,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

 

删除加载的密钥

 

posted @   Outsrkem  阅读(299)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示