VSCode使用ssh远程连接银河麒麟V11提示"Forwarding tcp error"禁止TCP端口转发
vscode终端输出内容如下

博主是在关闭防火墙、安全工具中所有工具、并启动运维模式下进行修复的。
修正方式
1. 修改配置文件
登录远程服务器,使用文本编辑器(如 vim 或 nano)打开 SSH 配置文件:
sudo vim /etc/ssh/sshd_config
2. 检查并修改参数
在文件中找到以下两项,确保它们被设置为 yes。如果前面有 # 号,请删掉以取消注释:
-
AllowTcpForwarding yes(最关键,目前你的服务器应该是no或者被注释掉了) - PermitOpen any (关键)
-
AllowStreamLocalForwarding yes(建议一并开启)
3. 重启 SSH 服务
修改保存后,必须重启 SSH 服务才能生效:
sudo systemctl restart sshd
# 或者
sudo service ssh restart
4.重启服务后
通过以下两个命令确保 AllowTcpForwarding 和 PermitOpen的值是正确的
sudo sshd -T | grep -i "allowtcpforwarding"
sudo sshd -T | grep -i "permitopen"
5. AI提供以下脚本进行处理(博主未使用过)
#!/bin/bash # 检查是否为 root 权限 if [ "$EUID" -ne 0 ]; then echo "请使用 sudo 运行此脚本" exit fi SSHD_CONFIG="/etc/ssh/sshd_config" BACKUP_CONFIG="/etc/ssh/sshd_config.bak.$(date +%F_%T)" echo "--- 开始检查 SSH 端口转发配置 ---" # 1. 备份原始配置 cp $SSHD_CONFIG $BACKUP_CONFIG echo "[1/4] 已备份配置至: $BACKUP_CONFIG" # 2. 修改 AllowTcpForwarding if grep -q "^AllowTcpForwarding" $SSHD_CONFIG; then sed -i 's/^AllowTcpForwarding.*/AllowTcpForwarding yes/' $SSHD_CONFIG else echo "AllowTcpForwarding yes" >> $SSHD_CONFIG fi echo "[2/4] 已确保 AllowTcpForwarding 为 yes" # 3. 处理 PermitOpen # 先删除所有已有的 PermitOpen 限制行(包括 PermitOpen none) sed -i '/^PermitOpen/d' $SSHD_CONFIG # 插入 PermitOpen any echo "PermitOpen any" >> $SSHD_CONFIG echo "[3/4] 已确保 PermitOpen 为 any" # 4. 检查子配置文件 (sshd_config.d) # 麒麟等系统经常在子目录里藏有 PermitOpen none CONF_D="/etc/ssh/sshd_config.d/*.conf" if ls $CONF_D 1> /dev/null 2>&1; then echo "正在检查子目录配置 /etc/ssh/sshd_config.d/ ..." sed -i 's/^PermitOpen.*/# &/' $CONF_D 2>/dev/null echo "[*] 已注释子目录中的所有 PermitOpen 限制" fi # 5. 重启 SSH 服务 echo "[4/4] 正在重启 SSH 服务..." systemctl restart sshd if [ $? -eq 0 ]; then echo "--- 修复完成!---" echo "现在请重新尝试 VS Code 连接。" else echo "错误:SSH 服务重启失败,请检查配置语法。" fi

浙公网安备 33010602011771号