问题描述

今天在用vscode远程连接一个新建的华为云ecs弹性云服务器的时候,出现报错:

Failed to set up dynamic port forwarding connection over SSH to the VS Code Server. (Show log)

同时vscode也有个提示:

设置 SSH 主机 xxx.xx.xxx.xx: 正在等待端口转发准备就绪

然后就卡在这了,连不上去。


原因分析

点击报错信息的 show log 查看日志:

[10:51:16.199] Remote server is listening on port 33809
[10:51:16.199] Parsed server configuration: {"serverConfiguration":{"remoteListeningOn":{"port":33809},"osReleaseId":"openEuler","arch":"aarch64","tmpDir":"/run/user/0","platform":"linux","execServerToken":"1a111a1a-a111-11a1-11aa-aa1a111a11aa"},"serverStartTime":38,"installUnpackCode":""}
[10:51:16.199] ** Note: Support for architecture "aarch64" is in preview **
[10:51:16.205] Starting forwarding server. local port 45522 -> socksPort 45512 -> remotePort 33809
[10:51:16.206] Forwarding server listening on port 45522
[10:51:16.207] Waiting for ssh tunnel to be ready
[10:51:16.209] [Forwarding server port 45522] Got connection 0
[10:51:16.211] Tunneled port 33809 to local port 45522
[10:51:16.211] Resolved "ssh-remote+120.46.194.18" to "port 45522"
[10:51:16.222] Initizing new exec server for ssh-remote+120.46.194.18
[10:51:16.222] Resolving exec server at port 45522
[10:51:16.223] > 
[10:51:16.224] [Forwarding server port 45522] Got connection 1
[10:51:16.238] Failed to set up socket for dynamic port forward to remote port 33809: Socket closed. TCP port forwarding may be disabled, or the remote server may have crashed. See the VS Code Server log above for details.
[10:51:16.239] Failed to set up socket for dynamic port forward to remote port 33809: Socket closed. TCP port forwarding may be disabled, or the remote server may have crashed. See the VS Code Server log above for details.
[10:51:16.258] > channel 3: open failed: administratively prohibited: open failed
> channel 4: open failed: administratively prohibited: open failed
[10:51:16.259] 错误: 远程主机上似乎禁用了 TCP 端口转发。确保 sshd_config 具有 AllowTcpForwarding yes。如有需要,请与系统管理员联系。

可以看到,问题关键在于最后几行提到的 远程服务器禁用了TCP端口转发 。根据提示也可以得知,需要检查 sshd_config 文件中的 AllowTcpForwarding 设置。


解决方案

通过其他方法登录远程服务器,编辑 sshd_config

vim /etc/ssh/sshd_config

找到 AllowTcpForwarding 并将其设置为 yes

在这里插入图片描述
改完后重启ssh服务:

sudo systemctl restart sshd

然后在vscode中重新连接,成功 👏

🔗 有关vscode连接服务器的基本操作,可以查看 这篇博客

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐