更新

更新

我有一个带有基于密钥的身份验证设置的库存安装Ubuntu 16.04.2并且工作正常。我还安装了一个未修改的mysql-server 5.7.17.我似乎无法通过 Sequel Pro ssh 隧道连接到 mysql 服务器。它总是返回以下内容:

无法连接到主机 127.0.0.1,因为通过 SSH 的端口连接被拒绝。

请确保您的 MySQL 主机设置为允许 TCP/IP 连接(无 --skip-networking),并配置为允许来自您正在通过隧道建立的主机的连接。

您可能还想检查端口是否正确以及您是否拥有必要的权限。

检查错误详细信息将显示 SSH 调试日志,该日志可能会提供更多详细信息。

MySQL 说:在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:0

完整日志:

使用的命令: /usr/bin/ssh -v -N -S none -o ControlMaster=no -o ExitOnForwardFailure=yes -o ConnectTimeout=10 -o NumberOfPasswordPrompts=3 -o TCPKeepAlive=no -o ServerAliveInterval=60 -o ServerAliveCountMax= 1[电子邮件受保护]-L 53471:127.0.0.1:3306

OpenSSH_6.9p1、LibreSSL 2.1.8
debug1:读取配置数据/Users/example/.ssh/config
debug1:读取配置数据/etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config 第 21 行:应用 * 的选项
debug1:控制套接字“none”不存在
debug1:连接到 xxxx [xxxx] 端口 22。
debug1: fd 3 清除 O_NONBLOCK
debug1:连接已建立。
debug1:身份文件 /Users/example/.ssh/id_rsa 类型 1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_rsa-cert 类型 -1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_dsa 类型 -1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_dsa-cert 类型 -1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_ecdsa 类型 -1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_ecdsa-cert 类型 -1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_ed25519 类型 -1
debug1: key_load_public: 没有这样的文件或目录
debug1:身份文件 /Users/example/.ssh/id_ed25519-cert 类型 -1
debug1:启用协议2.0的兼容模式
debug1:本地版本字符串SSH-2.0-OpenSSH_6.9
debug1:远程协议版本2.0,远程软件版本OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1:匹配:OpenSSH_7.2p2 Ubuntu-4ubuntu2.1 pat OpenSSH* 兼容 0x04000000
debug1:以“root”身份验证 xxxx:22
debug1:SSH2_MSG_KEXINIT 已发送
debug1:收到 SSH2_MSG_KEXINIT
debug1: kex: 服务器->客户端[电子邮件受保护]  没有任何
debug1: kex: 客户端->服务器[电子邮件受保护]  没有任何
debug1:期待 SSH2_MSG_KEX_ECDH_REPLY
debug1:服务器主机密钥:ssh-rsa SHA256:eFHrFt6z4o0mErU0vnzcuzlyIQqZPUa09a0RFl0wE7Q
debug1:主机“xxxx”已知并且与 RSA 主机密钥匹配。
debug1:在 /Users/example/.ssh/known_hosts:36 中找到密钥
debug1:SSH2_MSG_NEWKEYS 已发送
debug1:期待 SSH2_MSG_NEWKEYS
debug1:收到 SSH2_MSG_NEWKEYS
debug1:已发送 SSH2_MSG_SERVICE_REQUEST
debug1: 已收到 SSH2_MSG_SERVICE_ACCEPT
debug1:可以继续的身份验证:publickey
debug1:下一个身份验证方法:publickey
debug1:提供RSA公钥:/Users/example/.ssh/id_rsa
debug1:服务器接受密钥:pkalg ssh-rsa blen 279
debug1:身份验证成功(公钥)。
已通过 xxxx ([xxxx]:22) 身份验证。
debug1:到 LOCALHOST:53471 的本地连接转发到远程地址 127.0.0.1:3306
debug1:本地转发侦听 ::1 端口 53471。
debug1: 通道 0: 新 [端口侦听器]
debug1:本地转发监听127.0.0.1端口53471。
debug1:通道1:新[端口侦听器]
debug1:请求[电子邮件受保护]
debug1:进入交互会话。
debug1:请求连接到端口 53471 转发到 127.0.0.1 端口 3306。
debug1:通道 2:新 [direct-tcpip]
debug1:client_input_global_request:rtype[电子邮件受保护]想要回复 0
通道 2:打开失败:连接失败:连接被拒绝
debug1: 通道 2: free: direct-tcpip: 监听 127.0.0.1 端口 3306 的端口 53471,从 127.0.0.1 端口 53473 连接到 127.0.0.1 端口 53471,nchannels 3

这是我的sshd_config

端口22
协议2
主机密钥 /etc/ssh/ssh_host_rsa_key
主机密钥 /etc/ssh/ssh_host_dsa_key
主机密钥 /etc/ssh/ssh_host_ecdsa_key
主机密钥 /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation 是

密钥再生间隔 3600
服务器密钥位 1024

系统日志设施验证
日志级别信息

登录宽限时间 120
允许根登录 是
严格模式 是

RSA 身份验证 是
公钥验证 是

忽略主机 是
RhostsRSA 身份验证 否
基于主机的身份验证 否

允许空密码 否

质询响应身份验证 否

密码验证 否



X11转发 是
X11显示偏移 10
打印型号
打印最后日志 是
TCPKeepAlive 是


AcceptEnv LANG LC_*

子系统 sftp /usr/lib/openssh/sftp-server

使用PAM 是

比赛组 mystaff
    Chroot目录 %h
    X11转发号
    允许Tcp转发 是
    ForceCommand 内部 sftp
    许可隧道 是

允许Tcp转发 是
许可隧道 是
允许代理转发 是

我知道 sshd_config 中的一些值是多余的,但我已经测试了它的许多变体。这令人沮丧,因为除了禁用密码身份验证之外,此设置完全是普通的。

我需要对防火墙做些什么吗?我不认为有,因为 ssh 已经被允许通过。

更新

有趣的是:我可以从服务器上完全删除 mysql,Sequel Pro 仍然会返回完全相同的错误。我猜这意味着它与 SSH 配置有关。

另外值得注意的是,HeidiSQL 和 Mysql Workbench 上也会返回相同的错误消息。

答案1

X11Forwarding我对 Sequel Pro 产品不熟悉,但我想知道它是否与set to有关no

您是否尝试联系供应商?

相关内容