![当我更改 ssh 端口时,SFTP 无法访问但 SSH 工作正常?](https://linux22.com/image/687281/%E5%BD%93%E6%88%91%E6%9B%B4%E6%94%B9%20ssh%20%E7%AB%AF%E5%8F%A3%E6%97%B6%EF%BC%8CSFTP%20%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E4%BD%86%20SSH%20%E5%B7%A5%E4%BD%9C%E6%AD%A3%E5%B8%B8%EF%BC%9F.png)
我正在使用iptables
防火墙httpd
。whitelist
CloudFlare
这是我的规则iptables
,我已经将 SSH 端口更改为2204
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 199.27.128.0/21 anywhere multiport dports http,https
ACCEPT tcp -- 198.41.128.0/17 anywhere multiport dports http,https
ACCEPT tcp -- 197.234.240.0/22 anywhere multiport dports http,https
ACCEPT tcp -- 190.93.240.0/20 anywhere multiport dports http,https
ACCEPT tcp -- 188.114.96.0/20 anywhere multiport dports http,https
ACCEPT tcp -- 173.245.48.0/20 anywhere multiport dports http,https
ACCEPT tcp -- 172.64.0.0/13 anywhere multiport dports http,https
ACCEPT tcp -- 162.158.0.0/15 anywhere multiport dports http,https
ACCEPT tcp -- 141.101.64.0/18 anywhere multiport dports http,https
ACCEPT tcp -- 131.0.72.0/22 anywhere multiport dports http,https
ACCEPT tcp -- 108.162.192.0/18 anywhere multiport dports http,https
ACCEPT tcp -- 104.16.0.0/12 anywhere multiport dports http,https
ACCEPT tcp -- 103.31.4.0/22 anywhere multiport dports http,https
ACCEPT tcp -- 103.22.200.0/22 anywhere multiport dports http,https
ACCEPT tcp -- 103.21.244.0/22 anywhere multiport dports http,https
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- 116.2.22.0/24 anywhere tcp dpt:b2-license
之后,我可以正常访问 SSH,但不能访问 SFTP。看起来我的新 SSH 端口与b2-license
端口相同。
这是我面临的问题?
这是我从 FileZilla 收到的错误
Status: Waiting to retry...
Status: Connecting to xx.xx.xx.xx:2204...
Response: fzSftp started, protocol_version=4
Command: open "[email protected]" 2204
Error: Connection timed out after 20 seconds of inactivity
Error: Could not connect to server
并登录成功ssh
Last login: Sun Jul 31 14:07:34 2016 from my-ip
更新:我可以通过 Tunilier 连接到 sftp,但无法通过 FileZilla 连接
如果您对此有任何想法,我将非常感激。
答案1
您运行的 filezilla 客户端可能不支持与您的服务器所需的相同加密算法。
您是否尝试过更新您的 filezilla 客户端?您是否尝试过其他 sftp 客户端?
另外,该文件是否/usr/libexec/openssh/sftp-server
存在且具有 +x 权限?
最后,您可以尝试以非守护进程模式运行 sshd 并使用调试选项(停止 sshd 服务,然后运行/usr/sbin/sshd -Dd
并使用您的 sftp 客户端重试)。
答案2
您似乎正尝试从不允许的 IP 地址连接到您的 sftp 服务器。您仅允许网络中的地址116.2.22.0/24
接受 tcp -- 116.2.22.0/24 任何地方 tcp dpt:b2-license
您是否尝试过连接到 2204 端口上的 ssh
ssh -p 2204 [email protected]
我怀疑你会遇到同样的超时情况。
答案3
当您使用 sftp 时,sshd 服务器进程会启动一个辅助应用程序(您应该在 sshd_config 中看到对此的引用)。我想知道是否有一些高级安全组件(例如 SELinux)不允许它在该端口上工作。
您正在使用哪个操作系统发行版/版本?
如果使用基于 RHEL 的发行版,会sestatus
报告什么?
答案4
我一直有这个问题,直到我看到 ssh 使用 -p 参数作为端口,而 sftp 使用 -P(大写)。当选项的大小写错误时,两者都会莫名其妙地出错。由于它在一个客户端上工作,所以一定是这样的配置问题。