3

不知道你有没有遇到这样的情况,有二台以上的服务器(服务器系统是windows的不要往下看)需要管理,如果说你有这种情况,而且还没有用到 ssh-agent 的话,那么这篇文章就是为你而写。

假如你有三台服务器 s1.x.com s2.x.com s3.x.com,而且你都做好了登录到每一台机器的免密码功能。就是通过本地机器直接运行 ssh sN.x.com (注意:N)都可以连接到相应的服务器了,那么问题就来了,如果你现在已经连接到 s1 这台机器上,希望通过 s1 这台机器直接连到 s2 这台机器,并且不要输入密码,你测试了一下发现不行,为什么呢?因为 s1 和 s2 这两台机器没有做免密码登录功能,虽然我们可以把本地的私钥上传到 s1 服务器上,让它连接 s2 的时候就使用这个私钥,但是这样子做太危险了啊,如果有人进了你的系统,你整个内网都是可以直接进入的,因为已经拿到了你的私钥了嘛。ssh-agent 就是一个让你不把私钥上传到服务器上,就可以完成刚才的功能的一个工具,让你在这些服务器之间来去自如。

step1. 开启 ssh-agent

$ eval ssh-agent
Agent pid XXX

step2. 添加私钥

$ ssh-add ~/.ssh/id_rsa (如果生成密钥时是使用的默认的,那么就是这个了,如果不是的话就写你的私钥地址吧)

step3. 告诉ssh 允许 ssh-agent 转发

  • 修改全局:$ echo "ForwardAgent yes" >> /etc/ssh/ssh_config
  • 修改个人

$ touch ~/.ssh/config
$ vim ~/.ssh/config
Host *
  ForwardAgent yes

step4. 修改每台服务器的 ssh 配置文件,让它们都对 ssh-agent 进行转发

到每台服务器上去按 step3 -> 全局,做一下。

现在你可以通过本地连接到任意一台服务器了,通过这台服务器再任意的连接到其它的服务器,以后就可以静静地享受这份快乐了!


肆意的青春
604 声望12 粉丝