通过隧道 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。