客户端直连远程数据库(远程数据库只能内网访问,不暴漏外网ip,因此需要先用ssh做端口映射)
场景: 某些数据库为了安全,关闭了外网ip访问,只能内网访问
1.需要连接远程数据库,但远程数据库不开发外网ip访问,只能内网ip访问
2.远程数据库提供内网ip,以及数据的用户名密码,以及ssh信息
3.本地的程序想直连远程数据库,也就是希望和连接外网ip那样直接连接
操作步骤,先用ssh做端口映射,然后访问本地端口就可以访问远程的数据库了
1.创建pem文件
touch /root/pgsql/ssh-keys/tix/tix-id-staging.pem
chmod 400 /root/pgsql/ssh-keys/tix/tix-id-staging.pem
2.复制进去内容
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAoO/IfzWnKT3E6HYR3zUFtPNURb72JkbPu5mrUPA0ziwXa/oDwqRqcO3R9XVG
02GOjJQu7WQI3jQ543hynG4UeekqmQ1awd7L4QOBGsdpQOAWpdCXXjaMqBNAhpwqQBEZ+SbB/CVq
bOUbVZCKITZEbfQQkE7Qj09THyb4xsergwvN/FLOyCGUPr1xxMcUbbtg3sP0Og1zJUb0pM6KgajN
bqyGmTj6Iaz/5nRvTWTql9eClXze5laYa9o2GhrcomplNoCyK08r41rHl/Ctx1VSH7kwR1BZCeyL
7LJRaht7Id+VTOhffb6WQxqfMYxkKxP63ijmQeZEo9uSXo/qnyswYwIDAQABAoIBAB3fhIMAbY/9
NEDGMdkR2YZWKI1tvfkq6cJz6tXyUIr4qjxTw0DtDgj6TB/Y7hWspS45D2DnUbIVVa2AnR2mXUyn
2E1iqjcUaRnScbOL0mDFd869omtNitxj/nU+JaWQxxZ1eEqak1+1Q1alps41aYxTYoO27YW8frxo
moMjaxW+3ZfarLhPp1vlimJCDGTGc4pAt5Aj2N7SuNAzkWKxDDQ1IZWw+qadnR2DtxmvNj4k18ma
QOUjL5npUGKcxxxxxxxxxxxxxxxxxxxtesttest
-----END RSA PRIVATE KEY-----
3.映射
ssh -N -L8091:10.x.x.159:5432 -i /root/pgsql/ssh-keys/tix/tix-id-staging.pem ubuntu@13.x.x.152
8091
: 本地的端口
10.x.x.159:5432
:远程的内网ip和端口
ubuntu@13.x.x.152
:远程的外网和用户名
-i /root/pgsql/ssh-keys/tix/tix-id-staging.pem
:密码文件
4.执行连接
pgsql 信息()
DB_NAME=tixid
DB_USER=tix
DB_PASSWORD=xxxxx
psql -d tixid -U tix -p 8091 -h 127.0.0.1
写上密码即可登陆:xxxxx