SSH 有效,但隧道或 SFTP 無效。為什麼?
自 2014 年以來,我從 SoYouStart 獲得了一台帶有 Centos 7 的伺服器。它執行良好,但現在我不得不再次安裝作業系統。現在我正在配置所有服務以再次工作。我需要通過 SSH 隧道連接到伺服器到 Mysql(現在是 MariaDB)並使用 SFTP 傳輸文件。問題是我可以通過 SSH 成功連接到伺服器(從任何主機),但是當我嘗試使用 Cyberduck 或 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 子系統。