You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode(Remote-SSH环境)中以root权限运行调试程序

永久配置Remote-SSH以超级用户身份运行/调试C/C++程序

下面是几种可行的永久配置方案,按需选择:

方案1:直接以root身份通过SSH连接

如果目标设备允许root远程登录,这是最直接的方式:

  • 登录目标设备,编辑SSH配置文件:sudo nano /etc/ssh/sshd_config
  • 找到PermitRootLogin选项,将其值改为yes(如果是prohibit-password则保持,只要允许root用密钥登录也可以)
  • 保存文件后重启SSH服务:sudo systemctl restart sshd
  • 在VS Code的Remote-SSH配置里,直接使用root作为用户名连接目标设备

方案2:给当前用户配置免密sudo,配合VS Code调试配置

不想直接用root登录的话,可以给日常用户开免密sudo权限,然后让调试工具自动使用sudo:

步骤1:配置免密sudo

  • 登录目标设备,执行sudo visudo打开sudoers配置文件
  • 在文件末尾添加一行(把your_user换成你的日常用户名):
    your_user ALL=(ALL) NOPASSWD: ALL
    
  • 按Ctrl+O保存,Ctrl+X退出

步骤2:配置VS Code调试launch.json

打开项目的.vscode/launch.json,修改调试配置:

  • 对于C/C++调试,将miDebuggerPath改为sudo gdb(如果用lldb则是sudo lldb)
  • 示例配置:
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "C/C++: 可执行文件调试",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceFolder}/a.out",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "miDebuggerPath": "sudo gdb"
            }
        ]
    }
    

这样启动调试时会自动以sudo权限运行gdb,无需手动输入密码。

方案3:配置Remote-SSH自动切换到root

通过SSH连接时自动执行sudo su -切换到root,无需手动操作:

  • 打开VS Code的Remote-SSH配置文件(点击左下角远程图标→Remote-SSH: Open Configuration File...)
  • 给目标设备的连接配置添加RemoteCommand和RequestTTY:
    Host target-device
        HostName 192.168.x.x
        User your_user
        RemoteCommand sudo su -
        RequestTTY yes
    
  • 保存配置后,重新连接目标设备,会直接进入root用户的shell环境,后续运行、调试程序都会默认以root权限执行

内容的提问来源于stack exchange,提问作者AlexOkun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:15:13