![在 SSH 隧道上创建 VNC 会话时出现“通道 3:打开失败:管理禁止:打开失败”](https://linux22.com/image/78973/%E5%9C%A8%20SSH%20%E9%9A%A7%E9%81%93%E4%B8%8A%E5%88%9B%E5%BB%BA%20VNC%20%E4%BC%9A%E8%AF%9D%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9C%E9%80%9A%E9%81%93%203%EF%BC%9A%E6%89%93%E5%BC%80%E5%A4%B1%E8%B4%A5%EF%BC%9A%E7%AE%A1%E7%90%86%E7%A6%81%E6%AD%A2%EF%BC%9A%E6%89%93%E5%BC%80%E5%A4%B1%E8%B4%A5%E2%80%9D.png)
通过隧道 SSH 连接创建 VNC 连接时,出现错误:
channel 3: open failed: administratively prohibited: open failed
我发现只有当我没有像username
我尝试使用隧道 VNC 连接连接到的主机那样本地登录主机时,才会发生这种情况。 SSH 隧道:
ssh -p 6000 -L 5901:127.0.0.1:5901 [email protected]
VNC连接:
vncviewer localhost:1
/etc/ssh/sshd_config
我尝试过使用和不使用设置来调整设置AllowTunnel yes
。 (我确实在每次更改后重新启动了 ssh service ssh restart
:)但是,如果我在远程主机上运行本地会话(即我以本地身份登录),错误就会消失。username
其他人是否看到此行为?看来我应该能够远程启动 VNC 并访问它,而无需在本地登录。
答案1
您正在寻找的选项不是AllowTunnel
(它用于使用tun
设备进行 VPN 和第 3 级转发)。您正在寻找AllowTcpForwarding
,它处理 ssh 中 TCP 流量的本地和远程端口转发。
查看服务器中的值并将其更改为yes
:
AllowTcpForwarding yes
答案2
我有一个导致此错误的名称解析原因。我的 /etc/hosts 有一个错误的服务器名称 IP 地址(不适用于本地主机),如下所示:
127.0.0.1 localhost
192.168.2.45 server.domain.com server
但配置的服务器 IP(以及使用 host/dig 命令解析的 DNS 名称)是 192.168.2.47。由之前的 IP 重新配置引起的简单拼写错误。修复 /etc/hosts 后,隧道连接完美运行:
ssh [email protected] -L 3456:127.0.0.1:5901
奇怪的是,当我使用 localhost 文字 IP 进行隧道时,真实 IP 导致了失败。发行版:Ubuntu 16.04 LTS。