搭建SSH反向隧道

薄洪涛6年前Linux1062

公司的数据库是通过端口转发来连接的,即需要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;


相关文章

centos8 新增服务

我在centos8上部署了一个java服务,使用java -jar xx.jar来启动服务,但是对于停掉服务,就得使用kill命令,所以想着把它做成个服务原始命令如下:/www/server/java...

php脚本以守护进程的方式运行

写了一个聊天室,需要手动执行php start.php start命令去启动workerman的握手程序,但是退出xshell后,进程会被杀掉,因为之前用过node的forever,感觉php应该也有...

xshell做端口映射链接数据库

xshell做端口映射链接数据库

有些时候,公司的一些线上的数据库,数据太多,不适合复制到本地然后搭建本地数据库开发,直接链接数据库又不安全所以,需要通过xshell做端口转发,通过隧道来链接数据库1、首先通过xshell登陆跳板机2...

服务器:swap告警,系统异常报错

服务器:swap告警,系统异常报错

登陆自己的小服务器,用composer下载个东西,一直报killed[root@host voyager]# composer require tcg/voya...

高负载均衡haproxy的搭建

高负载均衡haproxy的搭建

目的:做负载均衡步骤:做两台nginx服务器,一台haproxy转发器首先安装nginx1.安装相关的依赖包。yum install gcc -c++ yum ...

haproxy如何开启日志

默认haproxy是不记录日志的,但是调试的时候需要我们去记录日志,所以说一下日志的记录方法1.编辑 /etc/rsyslog.conf,放开如下代码,记住是udp# Provides&nb...

发表评论    

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