SSH 可以工作,但隧道或 SFTP 却不行。为什么?

SSH 可以工作,但隧道或 SFTP 却不行。为什么?

自 2014 年以来,我从 SoYouStart 获得了一台服务器,使用 Centos 7。它运行良好,但现在我不得不重新安装操作系统。现在我正在配置所有服务以使其再次运行。我需要使用 SSH 隧道连接到 Mysql(现在是 MariaDB)的服务器并使用 SFTP 传输文件。问题是我可以成功地使用 SSH 连接到服务器(从任何主机),但是当我尝试使用 Cyber​​duck 或 Navicat 使用 SSH 隧道连接到服务器时,我收到错误(“服务器意外关闭网络连接”或“连接到端口 22 上的服务器时出现问题。”)。我尝试从 iPhone 使用 SSH shell,我可以成功使用 SSH 和 SFTP 连接,但无法使用 SSH 隧道连接到数据库。我不明白问题出在哪里。我已经禁用了 iptables、firewalld(我用 iptables 替换了它)和 selinux 直接连接到数据库允许远程连接。该服务器有一个来自提供商的静态 IP 地址,并且我的家庭作业网络在过去几个小时内没有改变,所以我不认为问题在这里。

有人能帮帮我吗?非常感谢

安德里亚


编辑@TheCompWiz

sshd_config 已允许 Tcp 转发。以下是未注释的行:

PermitRootLogin yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
AllowTcpForwarding yes
X11Forwarding yes
UsePrivilegeSeparation sandbox
PermitTunnel yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server

奇怪的是,我可以通过移动应用程序执行 sftp,但不能通过电脑执行。Mysql SSH 隧道仍然不起作用

非常感谢

答案1

ssh 隧道由 ssh-daemon 本身配置。如果 SSH 守护进程不允许隧道,则需要重新配置它。通常,它只是运行 openssh 服务器……您可以编辑 /etc/ssh/sshd_config 并添加AllowTcpForwarding yes(删除AllowTcpForwarding no)并重新加载 sshd 配置。

就 sftp 而言,这有点不同。本质上,当您想要 sftp 时,连接以 ssh 会话开始,并带有一个标志,表示您想要启动 sftp 子系统。这会按您预期的方式启动 ssh 会话,但不是启动命令解释器,而是启动 sftp 服务器,并且输入/输出通过 ssh 会话定向到/来自 sftp 服务器进程。如果没有配置 sftp 子系统,或者不存在 sftp 服务器,或者即使 sftp 服务器未配置为允许用户...整个过程都可能失败。或者,您可以尝试scp不依赖于单独的 sftp 服务器子系统的方法。

答案2

我最终不得不更换操作系统,我恢复了 centOS 6.6 而不是 7.1,现在它可以工作了,它可能是 7.1 版本中的某种新保护,我不知道...感谢大家的支持!

相关内容