Centos

SSH 有效,但隧道或 SFTP 無效。為什麼?

  • July 6, 2015

自 2014 年以來,我從 SoYouStart 獲得了一台帶有 Centos 7 的伺服器。它執行良好,但現在我不得不再次安裝作業系統。現在我正在配置所有服務以再次工作。我需要通過 SSH 隧道連接到伺服器到 Mysql(現在是 MariaDB)並使用 SFTP 傳輸文件。問題是我可以通過 SSH 成功連接到伺服器(從任何主機),但是當我嘗試使用 Cyber​​duck 或 Navicat 使用 SSH 隧道連接到伺服器時,我收到錯誤消息(“伺服器意外關閉網路連接”或“那裡連接到埠 22 上的伺服器時出現問題。”)。我嘗試使用 SSH shell 從 iPhone 連接,我可以使用 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 隧道仍然不起作用

非常感謝你

我終於不得不更改作業系統我恢復了centOS 6.6而不是7.1,現在它可以工作了這可能是我不知道的7.1版本中的某種新保護……謝謝大家的支持!

ssh 隧道由 ssh-daemon 本身配置。如果 SSH 守護程序不允許隧道,您需要重新配置它。通常,它只是執行 openssh 伺服器……您可以編輯 /etc/ssh/sshd_config 並添加AllowTcpForwarding yes(刪除AllowTcpForwarding no)並重新載入 sshd 配置。

就 sftp 而言,這是一種略有不同的動物。本質上,當您想要 sftp 時,連接以 ssh 會話開始,並帶有一個表示您要啟動 sftp 子系統的標誌。這會像您期望的那樣啟動 ssh 會話,但它不是啟動命令解釋器,而是啟動 sftp 伺服器,並且輸入/輸出通過 ssh 會話定向到/從 sftp-server 程序。如果沒有配置 sftp 子系統,或者沒有 sftp-server 存在,或者即使 sftp 伺服器沒有配置為允許使用者……整個事情都可能失敗。或者,您可以嘗試scp,它不依賴於單獨的 sftp-server 子系統。

引用自:https://serverfault.com/questions/702975