今天在使用天翼云定制的操作系统安装了mysql8.4的数据,数据库使用了公钥登录,默认密码登录被禁用了。
当我使用navicat 17.2.5 客户端连接的时候,点击“测试” ssh 连接通过了,当我满心换新输入mysql host地址为127.0.0.1 ,并且输入账号和密码后,再次点击测试却提示: 2013 - Lost connection to server at 'handshake: reading initial communication packet', system error: 0
报错说明ssh 隧道已经连接上了,但是ssh转发数据到mysql端口的时候报错了,通过查资料得知,sshd服务中需要开启端本地端口转发功能:
AllowTcpForwarding 要设置为:yes 这个选项对应 ssh 命令转发的 -L GatewayPorts 对应 ssh命令转发中的-R ,sshd_config 设置中还有一个选项: AllowAgentForwarding 这个是设置:
含义:
控制是否允许SSH认证代理转发
yes:允许客户端转发其SSH认证代理连接
no:禁止代理转发
影响:
当设置为no时,用户无法使用-A选项或ForwardAgent配置:
ssh -A user@host # 代理转发
主要用于多跳SSH连接时保持认证链的场景
本例中只要把AllowTcpForwarding 设置成yes ,然后重启下 sshd服务,navicat17连接就正常了。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!