Windows 11下VSCode免密SSH连接Rocky Linux 9.1的完整避坑指南

Windows 11 下构建无缝 C/C++ 开发环境:VSCode 与 Rocky Linux 9.1 的深度集成实践

对于许多从 Windows 转向 Linux 开发的工程师来说,最大的痛点莫过于在两个系统间反复切换,以及本地编辑器与远程服务器之间繁琐的同步工作。你是否也曾在 Windows 上编写代码,然后通过 FTP 或 SCP 上传到 Linux 虚拟机,再通过终端编译调试,整个过程割裂且低效?这种工作流不仅打断了编程的“心流”,也让调试和问题排查变得异常困难。

幸运的是,现代开发工具链已经为我们提供了近乎完美的解决方案。通过 Visual Studio Code 的 Remote-SSH 扩展,我们可以将 Windows 11 的舒适界面与 Rocky Linux 9.1 的强大命令行环境无缝融合,打造一个既高效又统一的开发工作站。这不仅仅是简单的远程连接,而是将整个开发体验——包括代码编辑、智能感知、编译、调试——都“投射”到远程 Linux 系统中,让你感觉就像在本地操作一样流畅。

本文将带你超越基础的连接教程,深入探讨如何构建一个稳定、高效且可维护的远程 C/C++ 开发环境。我们将重点关注那些在常规指南中容易被忽略的细节:网络配置的稳定性、SSH 密钥权限的“坑”、服务端配置的优化,以及如何为 C/C++ 项目配置一套得心应手的编译和调试工作流。无论你是正在搭建第一个 Linux 开发环境的新手,还是希望优化现有工作流的老手,这里都有你需要的实战经验。

1. 环境基石:虚拟机网络与 Rocky Linux 的精准配置

一个稳定的开发环境始于可靠的基础设施。在 Windows 11 上使用 VMware 虚拟机时,网络连接方式的选择直接决定了后续 SSH 连接的稳定性和速度。许多连接失败的问题,其根源往往在于虚拟网络的配置。

1.1 虚拟机网络模式的选择与考量

VMware 提供了几种主要的网络模式,每种都有其适用场景。对于开发环境,我强烈推荐使用 NAT 模式。在这种模式下,虚拟机会通过宿主机的网络连接共享一个 IP 地址上网,同时会获得一个虚拟网络内的私有 IP(如 192.168.xxx.xxx)。它的最大优势是稳定:虚拟机的 IP 地址通常不会因为宿主机网络环境的变化(比如从公司切换到家庭 Wi-Fi)而改变,这对于需要持久 SSH 连接的环境至关重要。

相比之下,桥接模式虽然让虚拟机看起来像局域网内一台独立的设备,但 IP 地址可能随网络切换而变化,导致 SSH 配置需要频繁更新。仅主机模式则完全隔离了外网,不适合需要访问外部资源(如下载包)的开发场景。

在 VMware 中为 Rocky Linux 虚拟机选择 NAT 模式后,我们还需要确认其服务是否正常启动。打开 VMware,进入虚拟机的设置,确保网络适配器已连接并设置为 NAT 模式。

1.2 Rocky Linux 9.1 的初始化与网络确认

安装 Rocky Linux 9.1 时,如果选择了“带 GUI 的服务器”或“开发工具”等选项,OpenSSH 服务器通常已经预装。但为了万无一失,我们首先进行确认和必要的安装。

通过虚拟机控制台登录 Rocky Linux,打开终端,执行以下命令:

# 检查 SSH 服务器是否已安装
which sshd

# 如果未安装,则使用 DNF 包管理器安装(Rocky Linux 9 使用 DNF)
sudo dnf install -y openssh-server

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

# 启动 SSH 服务
sudo systemctl start sshd

# 设置 SSH 服务开机自启
sudo systemctl enable sshd

# 检查服务状态,确认处于 active (running) 状态
sudo systemctl status sshd

接下来,获取虚拟机的 IP 地址。在 NAT 模式下,这个地址由 VMware 的虚拟 DHCP 服务器分配。

# 使用 ip 命令查看网络接口信息,重点关注 ens33 或类似接口的 inet 地址
ip addr show

# 或者使用传统的 ifconfig 命令(可能需要安装 net-tools)
# sudo dnf install -y net-tools
# ifconfig

你应该会看到类似 inet 192.168.137.128/24 的输出。记下这个 IP 地址(例如 192.168.137.128),这是后续 VSCode 连接的关键。

注意:如果 ip addr 显示没有获取到 IP 地址,可能是 VMware 的 NAT 服务未启动。在 Windows 服务管理器中,确保 VMware NAT ServiceVMware DHCP Service 正在运行。

1.3 加固 SSH 服务端配置

默认的 SSH 配置可能无法满足所有需求,尤其是当我们需要使用密钥登录或允许 root 用户连接时(仅建议在个人开发环境这样做)。编辑 SSH 服务器的配置文件:

sudo vi /etc/ssh/sshd_config

找到并修改以下几行关键配置:

# 允许公钥认证,这是免密登录的基础
PubkeyAuthentication yes

# 如果你需要用 root 用户直接连接(简化操作,生产环境不推荐)
PermitRootLogin yes

# 为了提高安全性,可以禁用密码登录,强制使用密钥(配置好密钥后再开启)
# PasswordAuthentication no

修改保存后,重启 SSH 服务使配置生效:

sudo systemctl restart sshd

为了确保防火墙不会阻止我们的连接,还需要放行 SSH 的默认端口(22):

# 检查防火墙状态
sudo systemctl status firewalld

# 如果防火墙是活跃状态,添加 SSH 服务规则
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

至此,Linux 端的准备工作已经完成。一个稳定、可访问的 SSH 服务正在等待我们的连接。

2. 构建信任桥梁:SSH 密钥对的生成与免密登录的深层原理

免密登录的核心是 SSH 密钥对认证。它比密码更安全,也更方便。其原理是利用非对称加密:你生成一对密钥(公钥和私钥),将公钥放在服务器上,本地保留私钥。连接时,服务器用公钥加密一个挑战,只有拥有对应私钥的客户端才能解密并回应,从而证明身份。

2.1 在 Windows 11 上生成密钥对

从 Windows 10 开始,系统内置了 OpenSSH 客户端,这让我们无需安装第三方工具。首先,确认客户端已启用:

  1. 打开“设置” -> “应用” -> “可选功能”。
  2. 在“已安装功能”列表中查找“OpenSSH 客户端”。如果未找到,点击“添加功能”,搜索并安装它。

安装完成后,我们使用 PowerShell 或命令提示符来生成密钥。我更喜欢在 VSCode 内置的终端里操作,这样环境更统一。

打开 VSCode,按 Ctrl+` 打开终端。确保终端 shell 是 PowerShell 或 Command Prompt。然后执行:

内容概要:本文档为陈南男的个人简历,详细介绍了其教育背景、实习经历、项目经验及专业技能。她目前为中国科学院大学计算机应用技术专业硕士在读,曾就读于哈尔滨工程大学计算机科学与技术专业,综合成绩位列前5%。实习期间,她在百度担任AI应用开发工程师,参与构建基于文心一言API的智能教育平台,实现个性化学习路径生成;在九坤投资参与开发多云资源管理平台,完成前后端系统设计与云资源集成;目前在阿里巴巴从事AI Agent研发,聚焦跨境电商SKU级资产治理,设计并优化Badcase诊断Agent,显著提升诊断效率与准确率。此外,她还主导开发了电商视频生成平台“山竹旺影”,通过Agent工作流降低用户使用门槛。其技术能力涵盖大模型应用、Prompt Engineering、AI Agent设计、全栈开发等。; 适合人群:计算机相关专业在校生、应届毕业生及从事AI开发、全栈开发的技术人员。; 使用场景及目标:①了解AI Agent在实际业务中的落地应用,如教育、电商、云运维等场景;②学习如何结合大模型与工程架构实现复杂系统的设计与优化;③参考高水平技术人才的成长路径与项目实践经验。; 阅读建议:此简历内容详实、项目含金量高,建议开发者重点关注其AI Agent设计思路、技术实现细节以及跨系统集成能力,借鉴其在复杂业务链路中解决问题的方法论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值