当前位置: 首页 > news >正文

ssh-agent

ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序。

ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。

$eval `ssh-agent -s` 注意这里是反引号

$ssh-add

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ssh-agent是管理多个ssh key的代理,受管理的私钥通过ssh-add来添加

好处1:不用重复输入密码。

用 ssh-add 添加私钥时,如果私钥有密码的话,照例会被要求输入一次密码,在这之后ssh-agent可直接使用该私钥,无需再次密码认证。

好处2:不用到处部署私钥

假设私钥分别可以登录同一内网的主机 A 和主机 B,出于一些原因,不能直接登录 B。可以通过在 A 上部署私钥或者设置 Forwarding 登录 B,也可以转发认证代理连接在 A 上面使用ssh-agent私钥登录 B;可以在A上直接sftp传文件到B上。

如这边有一台机器是local,能通过公钥直接登陆server1和server2。server1和server2之间无公钥登陆。

现在要在server1上直接登陆server2,在local上执行

ssh-agent
ssh-add

执行了之后就将私钥给ssh-agent保管了,server1上面登陆server2的时候,需要私钥验证的时候直接找ssh-agent要就可以了。

接下来登陆server1,注意-A

ssh -A server1

可以发现server1上多了/tmp/ssh-xxxxxxxxx/agent.xxxxx的socket,之后神奇的事发生了,在 server1上可直接进server2,只需执行如下命令,如果加了-A则可以继续ssh forwarding,以至无限的机器forwarding。

ssh (-A) server2

同样的原理可以试一下sftp, scp等基于ssh的命令。

如运行ssh-add,遇到“Could not open a connection to your authentication agent.”。

解决:需要ssh-agent启动bash,或者说把bash挂到ssh-agent下面。

ssh-agent bash --login -i
ssh-add


相关文章:

  • 手机app有了短信验证码还有没必要有图片验证码?
  • 基于原型链劫持的前端代码插桩实践
  • Java动态代理机制——那些让你面试脱颖而出的技能 推荐
  • python正则表达式的使用
  • Nginx配置SSL实现服务器/客户端双向认证
  • reqeusts用法
  • 【总结整理】交互心理学---摘自《人人都是产品经理》
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • 在线uml软件,在线思维导图软件
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • 楚留香mv
  • TestDriven.NET和Visual Studio Express的纠纷往事
  • 19.分屏查看命令 more命令
  • A WebSite for MapXtreme Resource
  • oh 呵呵!系统盘磁盘分配home太多
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • EOS是什么
  • fetch 从初识到应用
  • Hibernate最全面试题
  • HTTP中GET与POST的区别 99%的错误认识
  • JavaScript对象详解
  • js算法-归并排序(merge_sort)
  • Redis的resp协议
  • Spark RDD学习: aggregate函数
  • springMvc学习笔记(2)
  • spring学习第二天
  • tensorflow学习笔记3——MNIST应用篇
  • ViewService——一种保证客户端与服务端同步的方法
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端_面试
  • 一起参Ember.js讨论、问答社区。
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (3)(3.5) 遥测无线电区域条例
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (离散数学)逻辑连接词
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .cn根服务器被攻击之后
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /var/log/cvslog 太大
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • @Repository 注解
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [AIGC] Redis基础命令集详细介绍
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Angular] 笔记 9:list/detail 页面以及@Output