公司的数据库是通过端口转发来连接的,即需要ssh登录跳板机,然后通过隧道-端口转发,将数据库映射到跳板机(或者电脑本地)的某个端口,程序连接本地的端口就可以实现连接远程对的数据库;这种连接方式相比VPN来说更加安全;
一般来说,我们的数据库主机都是内网机器没有公网ip,需要通过跳板机(有公网ip)去连接,就是把内网数据库的端口映射到跳板机上;
准备步骤:
1、假设我有两台主机,一台是主机A(必须有公网IP 用户名是usera),一台是主机B(内网,用户名是userb)
2、首先我需要在B上生成SSH秘钥
ssh-keygen -t rsa -C "BoHongtao@yeah.net"
然后在将生成的秘钥添加到跳板机,xxxx是B主机的IP
ssh-copy-id userb@xxxx -p B主机的ssh端口
执行上述命令后,会要求输入B主机的密码
3、配置A主机:跳板机A需要更改/etc/ssh/sshd_config,添加如下代码
GatewayPorts yes
重启sshd服务
service sshd restart
4、配置B主机:B主机安装一个AutoSSH
apt-get install autossh
然后配置转发端口,xxx是B主机的IP
autossh -M 55555 -NfR 0.0.0.0:54321:localhost:5432 userb@xxxx
55555是随便写的(必须要可用),这行命令是将B主机的54321端口,映射到A主机的5432端口;
这样我们访问A主机的54321端口,会自动转发到B主机的5432端口
5、通过ssh命令连接B主机测试
ssh userb@xxxx -p 54321
xxxx是B主机的IP;