ssh 推荐的登录方式是使用私钥登录。但是如果生成私钥的时候,设置了口令/密码(passphrase),每次登录时需要输入口令也很麻烦。可以通过 ssh-agent 来管理私钥,把私钥加载进内存,之后便不用再输入密码。

ssh-agent解决的问题

当我们的主机有多个密钥对(例如:root用户生成了一对公钥私钥对,hmk用户生成了另外一对公钥私钥对),我们连接到其他不同的多台主机时,可能用的认证用户不一样,这时候需要我们手动指定使用哪个密钥,一旦机器过多输入会非常繁琐,ssh-agent能帮我们管理这些密钥对
当我们给私钥加了密码,而我们的认证方式又选择了密钥认证,ssh-agent可以帮助我们免去输入密码的繁琐操作

ssh-agent 代理

ssh-agent 的原理如下图:

用户 Bob 使用 ssh-agent 来管理私钥之后。ssh-agent 会启动一个进程在内存里保存这些私钥。之后每次登录时,ssh 客户端都会跟 ssh-agent 请求是否有目标主机的私钥;如果有,ssh 客户端便能直接登录目标主机。

操作步骤如下:

1、通过 ssh-agent bash 或者 eval ssh-agent (这里是shell 的命令替换符)来启动。

2、通过 ssh-add Identity_Linux 为 ssh-agent 添加私钥。这里的 Identity_Linux 是我的私钥文件。

添加之后,可通过 ssh-add -l 来查看已经添加的私钥。


第一条命令,因为服务器设置了只能使用私钥认证登录,所以直接登录失败了。如果私钥不是放在 ssh 客户端缺省读取的位置或者不是默认的名字,就需要使用 -i 选项显示的指定私钥文件。 在给代理添加私钥时,需要输入一次私钥的口令。准备就绪之后,之后不再指定私钥也不需口令即可登录了。

ssh-agent原理

ssh-add 这个命令不是用来永久性的记住你所使用的私钥的。实际上,它的作用只是把你指定的私钥添加到 ssh-agent 所管理的一个 session 当中。而 ssh-agent 是一个用于存储私钥的临时性的 session 服务,也就是说当你重启之后,ssh-agent 服务也就重置了。

如果是为了永久记住对应的私钥是哪个,我们不能依赖 ssh-agent 服务。能依赖什么则取决于以下哪些方案适合你的使用场景。

当你电脑重启

ssh-add

选项

-D:删除ssh-agent中的所有密钥.
-d:从ssh-agent中的删除密钥
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
-L:显示ssh-agent中的公钥
-l:显示ssh-agent中的密钥
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
-X:对ssh-agent进行解锁
-x:对ssh-agent进行加锁

实例

1、把专用密钥添加到 ssh-agent 的高速缓存中:

ssh-add ~/.ssh/id_dsa
sudo ssh-add ~/.ssh/id_dsa

2、从ssh-agent中删除密钥:

ssh-add -d ~/.ssh/id_xxx.pub

3、查看ssh-agent中的密钥:

ssh-add -l

参考文档

https://www.cnblogs.com/f-ck-need-u/p/10484531.html
https://zhuanlan.zhihu.com/p/126117538
https://blog.csdn.net/zhouguoqionghai/article/details/92134462
https://segmentfault.com/q/1010000000835302

ssh:ssh-agent、ssh-add相关推荐

  1. 【Linux】SSH远程终端连接工具(SSH基本用法、ssh服务认证类型、ssh服务常见配置、常见配置总结、远程拷贝scp命令)

    一.SSH远程终端连接工具 1.SSH简介 SSH是一种网络协议,用于计算机之间的加密登录.最早的时候,互联网通信都是明 文通信,一旦被截获,内容就暴露无疑.1995年,芬兰学者Tatu Ylonen ...

  2. Intellij IDEA 高级用法:集成 JIRA、SSH、FTP、Database管理、UML类图插件

    点击关注公众号,实用技术文章及时了解 来源:https://www.cnblogs.com/yjmyzz 一.与JIRA集成 jira是一个广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务 ...

  3. SSLH:让 HTTPS 和 SSH 共享同一个端口

    转载来源 :SSLH:让 HTTPS 和 SSH 共享同一个端口:http://www.safebase.cn/article-258224-1.html 摘要: 如果你遇到大多数端口被防火墙阻止的情 ...

  4. 【CV面试】RGB2GRAY、贝叶斯问题、cv2.add和cv2.addWeighted

    目录 1.opencv中RGB2GRAY是怎么实现的 2.贝叶斯问题 3.cv2.add和cv2.addWeighted 1.opencv中RGB2GRAY是怎么实现的 答:以R.G.B为轴建立空间直 ...

  5. idea添加database插件_IDEA高级玩法:集成JIRA、UML类图插件、SSH、FTP、Database管理......

    优质文章,第一时间送达 上一篇: 下一篇:(已修复) 作者: 菩提树下的杨过 出处: http://yjmyzz.cnblogs.com dea还有很多高大上的功能,易用性几乎能与vs.net媲美,反 ...

  6. idea server日志乱码_IDEA高级玩法:集成JIRA、UML类图插件、SSH、FTP、Database管理

    作者:菩提树下的杨过 链接:https://www.cnblogs.com/yjmyzz/p/intellji-idea-advanced-usage.html idea 还有很多高大上的功能,反正我 ...

  7. intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理

    一.与JIRA集成 jira是一个广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域.idea可以很好的跟它集成,参考下图: Fi ...

  8. IDEA高级技巧:集成JIRA、UML类图插件、SSH、FTP、Database管理

    IDEA 还有很多高大上的功能,反正我自从改用idea后,再也没开过eclipse,今天来看几个高级功能: 一.与JIRA集成 jira是一个广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服 ...

  9. 【intellij idea 高级用法之:集成JIRA、UML类图插件、集成SSH、集成FTP、Database管理 】

    intellij idea 高级用法之:集成JIRA.UML类图插件.集成SSH.集成FTP.Database管理 - 菩提树下的杨过 - 博客园

  10. 【笔记】SSH服务:基本概述、相关命令“ssh、scp、sftp”、验证方式、场景实践、安全优化

    SSH服务 SSH基本概述 SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1.提供远程连接服务器的服务 2. ...

最新文章

  1. 青少年电子信息智能创新大赛 -- Python编程挑战赛初赛试题说明
  2. 4篇SCI,1篇A类期刊,这位复旦博士生分享自身科研经验
  3. 第三届福建省大学生智能车竞赛
  4. 向有环的环形链表中插入新节点
  5. 12 - 函数式编程
  6. Java 导出Excel的各种尝试
  7. Linux kill 多余用户终端
  8. 续【将数据从MongoDB迁移到mysql】
  9. Emu8086下载和注册
  10. Could not load file or assembly 'XXXXXXXX' or one of its dependencies. 试图加载格式不正确的程
  11. win10计算机系统优化设置,Win10不如win7?超实用win10系统优化设置,让电脑运行更流畅!...
  12. 华为ensp——企业网络的设计与实现【方案测试验证】
  13. 【bzoj4826】[Hnoi2017]影魔
  14. weui表单添加功能_万能表单小程序 weui V8.1.16 weiqing功能模块 支持PC端管理 + 微信端管理 目前最强大的表单系统 weiqing微赞通用功能模块...
  15. calico网络模型中的路由原理
  16. python 中的“_,“有什么用途
  17. iOS---学习研究大牛Git高星项目YYCategories(二)
  18. 我是如何一步步把客户的两台服务器给弄崩的
  19. 【TREC】TREC LOG
  20. MFC VC++多线程间通信

热门文章

  1. 安卓开发(一)快速搭建Android开发环境
  2. 11-20什么是内网,外网,局域网,如何判断
  3. php artisan migrate,关于laravel 5.1下php artisan migrate的使用
  4. Oracle DBA面试突击题
  5. 当健身用户进入直播间:一场全新内容生态的破壁与重建
  6. 批量html转word 或者 pdf
  7. restTemplate实现 authorization basic权限认证(带账号密码)
  8. 3---kaldi 自己录音,做自己版本的yesNo
  9. 扩展系统功能——装饰模式(四):透明与半透明装饰模式,装饰模式注意事项,装饰模式总结
  10. 调试输出信息OutPutDebugString