在使用ssh-copy-id拷贝公钥及ssh-agent添加passphrase一文中,我们已经知道ssh-agent可以免除输入passphrase的麻烦,本文演示其另一功能,SSH agent forwarding。

假设有3台机器,客户机,位于公网的跳板机和位于内网的目标机。

为了访问内网的目标机,通常需要将目标机的私钥放置在跳板机上。而SSH agent forwarding可以实现以下的功能:

  • 跳板机上无需放置目标机的私钥
  • 跳板机通过访问客户机上的ssh-agent获取私钥

注意,前提是客户机可以访问跳板机,也就是具有访问跳板机的私钥

因此在客户机上需要启动ssh-agent,并添加目标机的私钥。

#  以下操作均位于客户机
$ eval `ssh-agent`
Agent pid 17808# 可以指定key的路径,例如ssh-add -k /tmp/id_rsa
$ ssh-add
Identity added: /c/Users/yyxiao/.ssh/id_rsa (/c/Users/yyxiao/.ssh/id_rsa)$ ssh-add -l
2048 SHA256:VSjsgy1rieKeqZqSOf/ubyXilTwdwURLZOPcuxaA3pU /c/Users/yyxiao/.ssh/id_rsa (RSA)

客户机和跳板机均需要允许SSH Agent Forwarding,或者说ssh和sshd都需要允许SSH Agent Forwarding。
客户机的配置可以在ssh_config文件中配置,或者使用-A选项。sshd的配置需要以下选项,默认是允许的:

AllowAgentForwarding yes

下面我们来验证这个过程:

# 在客户机上,以-A选项登录跳板机
$ ssh -A opc@130.61.120.167
Last login: Wed Nov  4 09:12:15 2020 from 202.45.129.203# 在跳板机上,确认没有存私钥文件id_rsa
[opc@instance-20201027-1039 ~]$ ls -l ~/.ssh
total 12
-rw-------. 1 opc opc  398 Oct 27 02:40 authorized_keys
-rw-------. 1 opc opc 1672 Nov  4 03:16 id_rsa.orig
-rw-r--r--. 1 opc opc  342 Nov  4 03:23 known_hosts# 在跳板机上,登录目标机成功
[opc@instance-20201027-1039 ~]$ ssh 10.0.1.14
Last login: Wed Nov  4 09:09:12 2020 from instance-20201027-1039.sub07281614200.training.oraclevcn.com

SSH Agent Forwarding概念与示例相关推荐

  1. SSH Agent Forwarding原理

    转载自:http://blog.pkufranky.com/2012/08/ssh-agent-forwarding-guide/ ssh-agent的manual写得倒是挺详细,可看了好几次都没怎么 ...

  2. ssh密钥代理转发(ssh agent forwarding)

    之前一直用SecureCRT登陆服务器A然后再跳到服务器B,某日突然需要从另一台可信任的机器C用ssh登陆,ssh的key已经复制好,所以登陆A没有问题,但是登陆B会出现Pubkey Unauthor ...

  3. An Illustrated Guide to SSH Agent Forwarding

    很怕某天这个网页就打不开了,先备份下来. 转自:http://www.unixwiz.net/techtips/ssh-agent-forwarding.html 再次声明,本文转自:http://w ...

  4. LWN:限制SSH agent密钥!

    关注了就能看到更多这么棒的文章哦- Restricting SSH agent keys By Jake Edge January 5, 2022 DeepL assisted translation ...

  5. jenkins用ssh agent插件在pipeline里实现scp和远程执行命令

    现在ssh agent的认证,已不支持明文用户密码,而只能用加密方式实现. 所以我先在jenknis和nginx服务器之后,实现ssh免密码rsa证书登陆. 私钥放jenkins,公钥放nginx.然 ...

  6. ssh X11 Forwarding(本地共享远程服务器界面)

    ssh -X untrusted ssh -Y trunsted在Client端显示运行在服务器(Server)上的图像化界面.可以通过SSH X11 Forwarding来实现. X11中的X指X协 ...

  7. SSH agent refused operation

    SSH agent refused operation 今天用ubantu16.0桌面版配置ssh免密码登录自己的时候,出现了这个灵异事件,最后终于找到了问题 首先,打开这个文件的权限 chmod 7 ...

  8. Java中的流(概念和示例)

    首先,流是什么? 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以"流"的方式进行.设备可以是文件,网络,内存等. 流具有方向性,至于是输入 ...

  9. 【集合论】等价关系 ( 等价关系概念 | 等价关系示例 | 等价关系与闭包 )

    文章目录 一.等价关系 二.等价关系示例 三.等价关系与闭包示例 一.等价关系 等价关系概念 : AAA 集合是非空集合 , A≠∅A \not= \varnothingA​=∅ , 并且 RRR ...

  10. ansible——playbook剧本概念及示例

    目录 一.playbook 1.1 yaml基本语法规则 1.2 yaml支持的数据结构 二.Inventory中变量 2.1  inventor 变量参数 三.playbook示例 3.1  为每个 ...

最新文章

  1. 请重新认识你作为程序员的价值
  2. 详解:Linux Chrony 设置服务器集群同步时间
  3. smb(ms17-010)远程命令执行之msf
  4. phpvirtualbox+Virtualbox完整虚拟化环境部署
  5. mysql 回滚段_史上最牛分析MySQL索引机制的实现!不接受反驳
  6. 教你实现splash欢迎页面延迟跳转的6种方法
  7. 前端学习(3219):对props进行限制
  8. 苹果本Win10双系统开启CPU虚拟化
  9. 询问区间内最大值-最小值
  10. linux系统中rsync的安装和使用,以及配置rsync开机启动
  11. postgresql数据库进行等保测评(审计) 需要修改的参数
  12. ubuntu20.04修改mac地址
  13. php 分页样式css样式,thinkphp5分页CSS样式代码
  14. mysql释放所有_mysql表空间释放情况汇总
  15. 如何将视频上传到网站服务器,如何将本地视频上传到云服务器
  16. 没有银弹-软件工程中的根本和次要问题
  17. 计算机用word做贺卡,新年马上就要到了用WORD2000做贺卡 -电脑资料
  18. “SCSA-S学习导图+”系列:文件包含
  19. MXNet作者李沐:我在CMU读博的这五年
  20. 多宫格视频是什么软件_抖音上的四/多宫格视频是怎么做出来的?多宫格视频一个接一个播放的制作技巧...

热门文章

  1. 近期DDG挖矿病毒防护与分析
  2. 用遗传算法解决VRP问题
  3. BFS最短路径的两种打印方法
  4. Java基础篇--IO
  5. 【sv】 assign force区别
  6. Shallow Heap 和 Retained Heap的区别
  7. 详解navigator对象
  8. 张驰咨询:某包装印刷集团第五期六西格玛项目通过专家评审
  9. 获取非行内样式代码封装
  10. 记用Fiddler抓包爬取pc端微信公众号文章