Ubuntu 22.04 安装 SSH 服务与远程调试环境配置指南

1. 安装 OpenSSH 服务器

首先,确保系统已更新,然后安装 OpenSSH 服务器。

bash 复制代码
# 切换到 root 用户(或使用 sudo)
sudo su -

# 更新软件包列表
apt update

# 安装 openssh-server
apt install openssh-server -y

2. 启动服务并设置开机自启

安装完成后,启动 SSH 服务并设置为开机自动启动。

bash 复制代码
# 启动 SSH 服务并设置开机自启
systemctl enable --now ssh

3. 验证 SSH 服务状态

通过以下命令检查 SSH 服务是否正常运行。

bash 复制代码
# 检查 SSH 服务状态
systemctl status ssh

# 检查 22 端口是否在监听
ss -tulpn | grep :22

4. 本地连接测试

在本地尝试 SSH 连接,验证服务是否可访问。

bash 复制代码
# 使用当前用户连接本地 SSH 服务
ssh home@localhost

5. 额外配置与检查

为了避免后续连接问题,建议进行以下配置。

5.1 防火墙放行 SSH 端口

如果系统启用了防火墙(如 ufw),需要放行 SSH 端口。

bash 复制代码
# 允许 SSH 端口(默认 22)
ufw allow ssh
# 重新加载防火墙规则
ufw reload

5.2 确认允许密码登录

默认情况下,Ubuntu 22.04 的 SSH 配置可能禁止密码登录。请检查并修改配置文件。

bash 复制代码
# 编辑 SSH 服务配置文件
nano /etc/ssh/sshd_config

找到 PasswordAuthentication 一行,确保其设置为 yes:

bash 复制代码
PasswordAuthentication yes

保存文件后,重启 SSH 服务使配置生效。

bash 复制代码
systemctl restart ssh

6. 远程部署路径配置(.pro 文件)

在 Qt 项目的 .pro 文件中,可以指定远程部署路径,方便通过 Qt Creator 进行远程部署。

qmake 复制代码
# 指定远程目标路径
target.path = /home/pc/myApp
INSTALLS += target

7. 远程运行环境变量设置

在远程主机上运行 Qt 应用程序时,可能需要设置以下环境变量。

bash 复制代码
# 设置显示和权限
export DISPLAY=:0
export XAUTHORITY=/home/pc/.Xauthority

# 设置库路径(包含自定义库和系统库)
export LD_LIBRARY_PATH=/home/pc/myApp/lib:/home/pc/myApp/lib/Galaxy:/home/pc/myApp/lib/OpenCV:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

# 设置 Qt 插件路径
export QT_QPA_PLATFORM_PLUGIN_PATH=/home/pc/myApp/plugins/platforms

# 另一种动态库路径设置方式(使用当前目录)
export LD_LIBRARY_PATH="$PWD/lib:$PWD/lib/Galaxy:$PWD/lib/OpenCV:/usr/lib/x86_64-linux-gnu"

8. 安装 xcb 依赖(解决 Qt 图形界面问题)

如果远程应用程序使用 Qt 且基于 xcb 平台,需要安装相关依赖。

bash 复制代码
sudo apt update && sudo apt install --reinstall -y libxcb-cursor0 libxcb-util-dev libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-shape0 libxcb-sync1 libxcb-xfixes0 libxcb-randr0 libxcb-shm0 libxcb-icccm4 libxcb-render0 libxcb-xkb1 libxkbcommon-x11-0
sudo ldconfig

9. 编写启动脚本

创建一个启动脚本(例如 start.sh),统一设置环境并启动应用程序。

bash 复制代码
#!/bin/bash
cd "$(dirname "$0")"

# 强制指定库路径,包含本地库和系统库
export LD_LIBRARY_PATH="$PWD/lib:/usr/lib/x86_64-linux-gnu"

# 强制指定 Qt 插件路径
export QT_QPA_PLATFORM_PLUGIN_PATH="$PWD/plugins/platforms"

# 强制使用 xcb 平台,避免 wayland 干扰
export QT_QPA_PLATFORM=xcb

# 开启 Qt 插件调试,方便定位问题
export QT_DEBUG_PLUGINS=1

# 启动应用程序
./HA5001HM

赋予脚本执行权限:

bash 复制代码
chmod +x start.sh

10. 安装远程调试工具

为了支持远程调试(例如使用 GDB),需要在远程主机上安装 gdbserver,在本地开发机安装 gdb。

bash 复制代码
# 在远程主机(Ubuntu 22.04)上安装 gdbserver
sudo apt update
sudo apt install gdbserver gdb -y

安装后,即可在远程主机启动 gdbserver,在本地通过 gdb 连接进行远程调试。

总结

本文详细介绍了在 Ubuntu 22.04 上安装和配置 SSH 服务,以及为远程 Qt 应用程序部署和调试准备环境的完整步骤。涵盖了服务安装、防火墙配置、环境变量设置、依赖安装和启动脚本编写,帮助开发者快速搭建稳定的远程开发和调试环境。

相关推荐
snysy2 小时前
服务器安全加固与入侵检测实战:从SSH加固、防火墙策略到挖矿木马排查
服务器·安全·ssh
菌菌的快乐生活3 小时前
Rufus + Ubuntu 24.04 Server(中山大学镜像)通用安装教程
ubuntu
Linux_cy4 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
ShineWinsu4 小时前
对于Qt:QLabel常见属性的解析
c++·qt·面试·笔试·gui·标签·qlabel
垆边人似月.4 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南
linux·windows·ubuntu
瓶 盖5 小时前
你的 IDE 插件改了 authorized_keys:Claude Code 扩展投毒链路拆解
ide·ssh·vs code·安全分析·供应链安全·claude code
小徐不徐说5 小时前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
是真的小外套20 小时前
网络安全实战第7期:Hydra爆破SSH实战
安全·web安全·ssh
蓝祁子yoky21 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
飞浪纪元[FWC–FE]1 天前
从零到一键绿:Qt 5.14.2 + VS2019 开发环境搭建、Kit 套件配置与构建错误修复完全手册
开发语言·qt