搭建SSH反向隧道

薄洪涛6年前Linux1134

公司的数据库是通过端口转发来连接的,即需要ssh登录跳板机,然后通过隧道-端口转发,将数据库映射到跳板机(或者电脑本地)的某个端口,程序连接本地的端口就可以实现连接远程对的数据库;这种连接方式相比VPN来说更加安全;

一般来说,我们的数据库主机都是内网机器没有公网ip,需要通过跳板机(有公网ip)去连接,就是把内网数据库的端口映射到跳板机上;

准备步骤:

1、假设我有两台主机,一台是主机A(必须有公网IP 用户名是usera),一台是主机B(内网,用户名是userb)

2、首先我需要在B上生成SSH秘钥

ssh-keygen -t rsa -C "BoHongtao@yeah.net"

深度截图_选择区域_20190310112017.png

然后在将生成的秘钥添加到跳板机,xxxx是B主机的IP

ssh-copy-id userb@xxxx -p B主机的ssh端口

执行上述命令后,会要求输入B主机的密码

深度截图_选择区域_20190310114401.png

3、配置A主机:跳板机A需要更改/etc/ssh/sshd_config,添加如下代码

GatewayPorts yes

深度截图_选择区域_20190310114522.png

重启sshd服务

service sshd restart

深度截图_选择区域_20190310114558.png

4、配置B主机:B主机安装一个AutoSSH

apt-get install autossh

然后配置转发端口,xxx是B主机的IP

autossh -M 55555 -NfR 0.0.0.0:54321:localhost:5432 userb@xxxx

深度截图_选择区域_20190310115057.png

55555是随便写的(必须要可用),这行命令是将B主机的54321端口,映射到A主机的5432端口;

这样我们访问A主机的54321端口,会自动转发到B主机的5432端口

5、通过ssh命令连接B主机测试

ssh userb@xxxx -p 54321

xxxx是B主机的IP;


相关文章

负载均衡配置ssl证书的坑

负载均衡配置ssl证书的坑

上周的时候,公司有个域名需要配置下ssl证书,所以这个艰巨的任务落在我的头上,开始的时候,觉得没啥啊,就配个证书而已,分分钟的事儿于是开始配置了步骤如下:合并证书文件负载均衡器导入ssl证书,配置ac...

mac下使用docker来构建不同版本的php环境并安装扩展

切换到mac后,我目前php环境是php7.3 ,但是一些老项目需要7.1 甚至5.6 的环境,特别是服务器上也有这种问题,所以我决定使用docker来部署不同的项目首先安装dockerbrew&nb...

centos上为php安装扩展

今天做了一个查询心跳数据的功能,相关的数据放在redis里面,我才用了yii框架链接redis的时候,线上服务器报Class yii\redis\Connection does not exist造成...

Centos7 下开机自启

我在虚拟机上搭建了一套nginx+php,然后每次开机的时候,都要去手动去运行让服务起来,这我可忍不了了,毕竟我可是懒癌晚期废话少说,我们直接设置开机启动1.在系统目录创建服务文件(不要问为什么,li...

nginx转发配置

帮同事搭建博客,选用的是ghost博客后台,这是基于nodejs的一套cms系统,然后需要用nginx去转发,顺便总价下nginx的转发方式及规则server_name  域名;...

linux免密登陆

linux免密登陆

最近有些累,所以今天的教程就水一篇;所谓免密登陆,就是说我有一台服务器,不想让人家知道具体的ip或者用户名密码,只让使用者从跳板机登陆,通过ssh xxx@ip  这种来登陆;1、 首先跳板...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。