ssh 代理-缓存ssh私钥

ssh 代理-缓存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 以后,会加载默认的私钥

1
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

1
2
3
4
5
6
7
8
9
10
11
# 启动agent代理
ssh-agent $SHELL

# 加载
ssh-add .ssh/id_rsa

# 查看
ssh-add -l

# 删除
ssh-add -d
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2024 Outsrkem
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信