问题描述
今天在用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连接服务器的基本操作,可以查看 这篇博客
评论前必须登录!
注册