通过SSH隧道连接OpenEurler系统上的MySql或者MariaDB报错,SSH能连通,数据库不行(navicat报1002,DBeaver报返回数据包大小为0)
根本原因:
因为使用了OpenEurler系统,其针对安全性做了很多优化,其中就包括默认不开启 ssh隧道支持
解决:
开启即可,文件位置 /etc/ssh/sshd_config,把AllowTcpForwarding 设置 yes,然后 重启ssh服务:systemctl restart sshd
参考文章:https://blog.csdn.net/weixin_42635070/article/details/82222001
以下文章节选:
SSH 设置
Secure SHell (SSH) 是一个通过网络登录其他计算机的程序,在远程服务器运行命令,和从一台机器移动文件到另一台。在不安全的网络中,它提供两台主机之间强大认证和安全加密的的通讯,被称为 SSH Port Forwarding (Tunneling)。通常情况下,它是使用为一个 Telnet 的加密版本。
在一个 Telnet 阶段作业,全部的通讯,包括用户名和密码,会用纯文本传输,让任何人都能监听你的阶段作业及窃取密码或其他信息。这种阶段作业也容易受到阶段作业劫持,一旦你验证,恶意用户就能接管这种阶段作业。SSH 的目的是防止这种漏洞,并允许你在不影响安全性的情况下访问远程服务器的 shell。
注意:只限于 MySQL、Oracle、PostgreSQL、SQL Server 和 MariaDB。
请确保在 Linux 服务器的参数 -「AllowTcpForwarding」设置值为「yes」,否则,会禁用 SSH port forwarding。要查找路径:/etc/ssh/sshd_config。在默认情况下,SSH port forwarding 应该已启用。请仔细检查该值的设置。
即使服务器支持 SSH 通道,然而,如果 port forwarding 被禁用,Navicat 就无法通过 SSH 端口 22 连接。