ssh-agent是一个私钥的管理工具
具体的应用场景如下:
当我们有多台服务器需要管理,又要通过不同的私钥去管理不同的服务器
使用不同的私钥去连接不同的服务器时,需要我们手动输入私钥密码,ssh-agent可以免去这项工作
如果需要ssh-agent这项功能的话首先需要启动它:
[root@sazhuo .ssh]# ssh-agent $SHELL
在没有启动的时候,我们在bash中pstree一下:
启动完之后pstree一下:
可以看到在bash下出现了一个子bash,我们的ssh-agent运行在我们的子bash中
那么要退出我们的子bash环境,只需要执行命令exit直接退出就行了
可以看到又回到了我们原来的bash环境
知道了怎么退出和进入子环境进行私钥的管理,只需要一条命令就可以将私钥交给代理进行管理:
然后我们需要这个add的场景如下:
在上一篇博客中,我们在执行ssh-keygen的时候,生成的私钥可以自己制定,而不是默认给的:
当再次执行把公钥给177的时候,我们来ssh一下177试试:我们会发现它会再次提示你输入177的密码,这是因为之前pub跟这次的test.pub进行比对,如果我们把生成的rsa_test1私钥放在我们的agent里面:
可以看到177登录不需要密码
当我们为指定的私钥设置了密码,在执行ssh-keygen的时候不但要输入所连接服务器的密码还要输入私钥的密码:
ssh-keygen -f ~/.ssh/id_rsa_test2 -P'123456'
在生成公钥和私钥的时候对私钥进行了指定密码的加密
我们用另一台0.3来做实验:
可以看到当我们第一次进入agent执行add的时候还是会需要输入密码,但是执行完之后,agent会自动将私钥的密码添加到其中进行管理,避免了再次登录的时候需要输入密码的操作
**管理我们的私钥:
**
如果想知道我们的agent中添加了那些私钥:
想知道私钥对应的公钥:
从代理中移除某个已经添加的私钥:
到此为止:ssh-agent已经有了很明了的解释