linux下ssh通过代理免密访问内网服务器

现在很多数据服务器都是隐藏在内网中,不暴露出来给用户,这样可以一定程度上提升服务器的安全性,但是对于日常运维就要麻烦一下。下面举例说明场景:

有三台机器A,B,C

A用户端:ip为172.18.18.18,可以联外网;

B服务端:ip为111.112.113.114(192.168.6.1内网IP),对外提供服务,有公网IP;

C服务端:ip为192.168.6.2,和B机器在同一个局域网;

如果我现在需要把C机器上的a.txt下载到A机器上,那么在没有ssh打通的情况下就必须分下面两步:

1.把a.txt从C下载到B;

2.再从B下载到A;

这样就显得有点麻烦了。于是就想到了能不能直接从C下载到A呢,那就只能把B做为一个中转服务器。经过查资料还真有这样的技术,下面就看具体的配置。

1.生成密钥对

一路回车,执行成功后会在你当前用户的.ssh/目录下生成密钥对,id_rsa(私钥)和id_rsa.pub(公钥)

2.把上一步生成的公钥增加到B服务器中的authorized_keys中

3.配置A机器上的ssh_config

3.1复制/etc/ssh/ssh_config到/home/root/.ssh/config

3.2编辑config,具体配置如下

4.测试是否可以直接链接到B机器

如果链接成功,可以继续下一步了,失败的则重新检查一下。

5.在B机器上重复1-4步的操作,这里客户机由A变成了B,服务端由B变成了C,config中的配置如下

6.测试是否可以直连C服器

如果以上配置成功则可以用scp和rsync来做文件的同步操作了,这里不做重点介绍,给一个小例子如下:

 

你的评论是对我最大的鼓励