Ubuntu SSH远程调试指南
远程调试Ubuntu系统(如代码、服务或应用程序)的核心是通过SSH建立安全连接,结合本地IDE实现代码编辑、编译及调试。以下是详细步骤:
安装OpenSSH Server
在Ubuntu终端执行以下命令,安装SSH服务:
sudo apt update && sudo apt install openssh-server -y
启动并设置SSH开机自启
启动SSH服务并设置为开机自动启动:
sudo systemctl start ssh
sudo systemctl enable ssh
验证SSH服务状态
确认SSH服务正在运行:
sudo systemctl status ssh
若显示“active (running)”,则表示服务已启动。
配置SSH允许远程登录(可选但常用)
编辑SSH配置文件,允许root用户或特定用户通过密码/密钥登录:
sudo vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password,修改为PermitRootLogin yes(允许root登录);PasswordAuthentication no,修改为PasswordAuthentication yes(允许密码登录);:wq)后,重启SSH服务使配置生效:sudo systemctl restart ssh
获取Ubuntu主机IP地址
使用ifconfig(旧版)或ip a(新版)命令查看IP地址,例如:
ip a | grep 'inet '
输出中的inet字段即为本地IP(如192.168.1.100)。
VS Code的Remote - SSH插件可实现本地与远程Ubuntu环境的无缝集成,支持代码编辑、编译及调试。
Ctrl+Shift+P),选择“连接到主机”;ssh username@192.168.1.100),按提示输入密码;Ctrl+Shift+D);program(程序路径)、args(命令行参数)等参数,例如:{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Program",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/my_program", // 编译后的程序路径
"args": ["-input", "data.txt"], // 命令行参数
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb", // gdb路径
"setupCommands": [
{
"description": "Enable pretty-printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
PuTTY是一款轻量级SSH客户端,适合Windows系统快速连接Ubuntu。
192.168.1.100);22,点击“Open”;gcc -g program.c -o program)、运行(./program)程序,或配合gdb(gdb ./program)进行命令行调试。若需要从外网(如家庭、公司)访问局域网内的Ubuntu,需通过内网穿透工具将Ubuntu的SSH端口映射到公网。常见工具包括:
ufw),需允许SSH端口(默认22):sudo ufw allow 22
ssh-keygen),将公钥(id_rsa.pub)复制到Ubuntu的~/.ssh/authorized_keys文件中:ssh-copy-id username@192.168.1.100
之后连接无需输入密码。通过以上步骤,即可实现Ubuntu系统的SSH远程调试,满足本地与远程环境协同开发的需求。