ssh-add和ssh-agent
2024-08-28 19:23:33
注: 因为在ssh-agent异常关闭或者新开窗口是会导致ssh-add找不到私钥,导致添加的私钥无效,所以下面使用keychain管理
ssh-add 参数
-l |
查看代理中的私钥 |
-L |
查看代理中私钥对应的公钥 |
-D |
移除所有代理中的私钥 |
-x |
锁定ssh代理 需要指定密码 |
-X |
解锁ssh代理 |
ssh-agent是代理,帮我们管理私钥,当创建的私钥与默认不一样的时候,通过ssh-agent管理
启动
ssh-agent $SHELL #创建一个子bash,ssh-agent运行在子bash中,子bash退出,代理关闭
eval `ssh-agent` #单独启动了一个 ssh-agent程序,关闭使用 ssh-agent -k
关闭
ssh-agent -k
当创建的私钥不是默认名称时,ssh无法直接登陆,ssh默认使用默认私钥
[root@2-128 .ssh]# ll /root/.ssh/
total 12
-rw------- 1 root test1 1679 Nov 18 20:31 id_rsatest
-rw-r--r-- 1 root test1 392 Nov 18 20:31 id_rsatest.pub [root@2-128 .ssh]# ssh-copy-id -i /root/.ssh/id_rsatest.pub -p1210 root@106.13.61.137 #当ssh登录时还是需要密码
[root@2-128 .ssh]# ssh -p1210 root@106.13.61.137
root@106.13.61.137's password: [root@2-128 .ssh]# #还需要指定私钥 [root@2-128 .ssh]# ssh -p1210 -i /root/.ssh/id_rsatest root@106.13.61.137
[root@bdserver ~]#
使用ssh-add将私钥添加到代理程序中,再次直接登录就ok了
[root@2-128 .ssh]# eval `ssh-agent`
Agent pid 26764 [root@2-128 .ssh]# ssh-add /root/.ssh/id_rsatest
Identity added: /root/.ssh/id_rsatest (/root/.ssh/id_rsatest)
[root@2-128 .ssh]#
[root@2-128 .ssh]# ssh -p1210 root@106.13.61.137
[root@bdserver ~]# logout
Connection to 106.13.61.137 closed.
5. keychain 管理ssh-agent
1.安装
cd /root && git clone https://github.com/funtoo/keychain.git
cd /root/keychain && make && mv keychain /usr/bin/ && source /etc/profile
2.keychain的一些参数
keychain -k mine |
只停止 keychain 启动的代理程序 |
keychain /root/.ssh/id_rsa |
添加私钥到代理 |
keychain --clear |
清理所有秘钥 |
keychain --clear /root/.ssh/id_rsa |
清理 id_rsa 这个私钥 |
3.配置环境变量使代理永久生效
将下面这句,配置到环境变量,我使用的是zsh
vim /root/.zshrc 配合到末尾即可
eval `keychain --eval --agents ssh id_rsa_mayun`
eval `keychain --eval --agents ssh id_rsa`
这里的意思是将id_rsa_mayun 和is_rsa 私钥 添加到ssh-agent中管理
注:
- 只要环境变量有效,ssh代理和添加的私钥就不会失效
- 使用这种方法,清理,添加秘钥均需要在环境变量中操作.好处是保证了代理的长期有效
最新文章
- 简单的html和css
- PHP学习(四)---PHP与数据库MySql
- Python基础-作用域和命名空间(Scope and Namespace)
- UVa 1617 Laptop (贪心)
- OpenLayers中的Layer概念和实践--Openlayers调用WMS服务
- 小白日记35:kali渗透测试之Web渗透-手动漏洞挖掘(一)-默认安装引发的漏洞
- 后台字符串转化成json
- 【HDOJ】1699 The comment in cpp
- Polymorphism
- JVM垃圾回收机制入门
- Android Studio中解决Gradle DSL method not found: &;#39;android()&;#39;
- 【转】android 电池(三):android电池系统
- fb27a9aeaf604597826718c467cc9f4f 为什么我老收到这个
- Adaboost的意义
- python多线程在渗透测试中的应用
- python并发编程之进程池,线程池,协程
- Win7 启动修复
- 2018 Multi-University Training Contest 6
- postgresql-pgbench(转)
- python模块之xlwt
热门文章
- React Native Debug原理浅析
- 微信小程序中图片上传阿里云Oss
- 如何在普通的元素上实现enter键的绑定
- 3,Java中的文件IO流
- elasticsearch 创建索引
- springcloud eureka注册中心搭建
- springboot连接redis错误 io.lettuce.core.RedisCommandTimeoutException:
- 从0系统学Android--5.2 发送广播
- Python中使用subprocess模块远程执行命令
- 029.核心组件-Controller Manager