奇怪的 ssh 问题:“打开失败:管理禁止:”

奇怪的 ssh 问题:“打开失败:管理禁止:”

我有一个 VPS 设置为我的 socket5 代理,安装了 Firefox 插件 AutoProxy。

ssh -p 2034 -D 127.0.0.1:1080  root@vps_ip

我的VPS上的端口是2034。

该命令可以工作一段时间,也许10分钟或20分钟,在这段时间里,我用我的Firefox打开了很多网页,突然,连接被阻止,并显示错误信息。

channel 8: open failed: administratively prohibited
channel 9: open failed: administratively prohibited
channel 10: open failed: administratively prohibited

我在stackoverflow上搜索过这个问题,例如:SSH 隧道错误:“通道 1:打开失败:管理禁止:打开失败”

我的问题与此不同!

  1. 我每次都能正确创建 ssh 隧道。
  2. 当ssh隧道创建后,我可以浏览网页一段时间,大约10或20分钟。
  3. 当我的火狐浏览器打开很多网页后,隧道就被打破了。
  4. 如果我关闭 Firefox 和控制台一段时间,我可以再次创建隧道。

它将继续循环。
我的 VPS 和 ssh 服务出了什么问题?我的系统是debian8.1,ssh日志文件在哪里?我的debian中没有/var/log/secure。也许ssh日志文件可以说明更多事实。

答案1

听起来您遇到了 SSH 服务器对每个连接同时会话数的限制。与远程服务器的命令行会话是一个会话,每个单独转发的 TCP 连接是另一个会话。

MaxSessions您可以通过以下参数更改服务器的限制服务器的sshd_config文件:

最大会话数
指定每个网络连接允许的最大打开会话数。默认值为 10。

您可以像这样更新 sshd_config:

  1. 找到该文件。通常是/etc/ssh/sshd_config
  2. 以 root 身份编辑它。
  3. 在文件中查找现有MaxSessions设置(如果有)。否则,添加新行。将数字设置为 15 左右。保存新文件。
  4. 重新启动 sshd 以使其重新读取该文件。
  5. 建立新的 ssh 连接并查看行为是否发生变化。

答案2

尝试不同的 DNS 服务器(OpenDNS 或 google)。

我遇到了这个问题,并且增加 MaxSessions 没有帮助。

/var/log/auth.log发现许多错误如下:

sshd[24976]: error: connect_to p.ebaystatic.com: unknown host (Name or service not known)

即使我可以 ping 所有主机并且发现它们没有问题。对我来说,从 google DNS 切换到 OpenDNS 解决了这个问题(目前)。 (也许最终原因是我的 Internet 连接上的数据包丢失导致 DNS 超时。不确定。)

无论如何,当您尝试通过socks代理连接到DNS无法找到的主机时,我认为这是导致“管理禁止”错误消息的原因之一。

答案3

是的,可能您点击了 MaxSessions + 请务必检查您的 FireFox about:config 设置中的 network.http.pipelined.maxrequests + 记下此值。

默认值通常为 5。

如果您同时访问多个站点,意味着您点击了新页面或新选项卡,则在等待第一页呈现时,请将 MaxSessions 目标设置为 - network.http.pipelined.maxrequests * 您随时可能进行的同时访问次数。

然后将此值加倍或三倍以考虑后台 AJAX 连接,例如如果您登录 WordPress,这会导致您的浏览器不断发送 AJAX ping 请求。

可能您可以在 sshd + ssh 隧道命令中打开一些深度调试,以查看是否超过 MaxSessions + 如果超过,只需增加更多即可。

相关内容