本方案参照官网说明,结合实际操作整理形成
PostgreSQL 中文文档 - 18.10. 使用 SSH 隧道的安全 TCP/IP 连接 | Docs4dev
1、免用户密码验证
解决ssh命令建立转发通道时,要求输出密码的问题
# 执行这个过程中,会提示要输出什么,直接enter跳过就行
ssh-keygen -t rsa
#这个会要求输出root用户的密码
#root是用户名,node1是服务器名称,服务器名称可以通过hostname查看
ssh-copy-id root@node1
2、创建ssh端口转发
#将本地的5432端口转发到63333端口
#63333端口可以根据实际情况调整
#root是用户名,node1是服务器名称
#22是ssh的端口号,如果不是默认的,需要改成实际的端口号
nohup ssh -t -t -L 0.0.0.0:63333:localhost:5432 root@node1 -p 22 > /dev/null 2>&1 &
3、添加开机运行
#echo的内容跟上面执行的命令是一样的
echo "nohup ssh -t -t -L 0.0.0.0:63333:localhost:5432 root@node1 -p 22 > /dev/null 2>&1 &" >> /etc/rc.d/rc.local
4、使用说明
此时5432和63333端口可以同时提供访问,防火墙不开放5432端口,开放63333端口
使用时,别的都一样的,只有端口号改成转发后的63333端口
5、其他问题补充
如果做完后,无法使用转发后的端口,提示 服务器意外地关闭了联接
#修改为yes
X11Forwarding yes
#下面四个注释掉,用默认值;或者将no改为yes
AllowTcpForwarding no
AllowAgentForwarding no
GatewayPorts no
PermitTunnel no
修改完后 执行 service sshd reload,让配置生效