VSCode 远程 SSH 连接 CentOS 7 虚拟机:EDA 开发者专属指南
VSCode 远程 SSH 连接 CentOS 7 虚拟机:EDA 开发者专属指南
在 EDA 开发中,CentOS 7 因其稳定的环境常被用作虚拟机系统运行 VCS、Verdi 等工具,但虚拟机内编辑代码效率较低。通过 VSCode 远程 SSH 连接,可直接在本地操作虚拟机文件、运行 EDA 命令,兼顾图形化编辑体验与 Linux 开发环境。本文结合实际操作场景,从环境准备到问题排查,完整记录连接全流程。
一、前置认知:核心需求与环境说明
1.1 适用场景
-
虚拟机系统:CentOS 7(用户:five,核心用途:运行 VCS、Verdi 等 EDA 工具)
-
本地环境:Windows/Mac/Linux(安装 VSCode,需与虚拟机在同一局域网)
-
核心目标:远程编辑 EDA 项目代码(如 UVM 测试台)、修改环境变量(.bashrc)、执行 VCS 编译命令
1.2 关键前提
虚拟机已联网,本地主机可与虚拟机互通(通过 ping 测试验证);虚拟机已安装 VCS 等 EDA 工具(本文不涉及工具安装,聚焦连接配置)。
二、虚拟机端(CentOS 7):SSH 环境配置(必做)
VSCode 远程连接的核心是虚拟机的 SSH 服务,需完成「安装服务→开放端口→确认IP」三步,全部操作在虚拟机终端执行。
2.1 安装并启动 SSH 服务
CentOS 7 默认未预装 SSH 服务,通过 yum 快速安装:
1. 安装 openssh-server(需 root 权限,非 root 加 sudo)
sudo yum install -y openssh-server
2. 启动 SSH 服务并设置开机自启(避免重启后需重新启动)
sudo systemctl start sshd
sudo systemctl enable sshd
3. 验证服务状态(输出 active (running) 即为正常)
sudo systemctl status sshd
2.2 开放 SSH 端口(防火墙配置)
CentOS 7 防火墙默认拦截 SSH 默认端口 22,需手动开放:
1. 开放 22 端口,设置永久生效
sudo firewall-cmd --add-port=22/tcp --permanent
2. 重新加载防火墙规则(立即生效)
sudo firewall-cmd --reload
3. 验证端口是否开放(输出 yes 即为成功)
sudo firewall-cmd --query-port=22/tcp
2.3 关闭 SELinux(避坑关键)
CentOS 7 自带的 SELinux 可能干扰 SSH 密钥认证,临时关闭用于测试(不影响系统稳定性):
临时关闭(重启虚拟机后失效,适合测试)
sudo setenforce 0
若需永久关闭(可选):编辑配置文件
sudo vim /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled,保存后重启虚拟机
2.4 查询虚拟机 IP(连接核心参数)
SSH 连接需虚拟机的 IPv4 地址,执行以下命令获取:
方法 1:精准过滤有效 IP(推荐,排除本地回环和 IPv6)
ip addr | grep inet | grep -v 127.0.0.1 | awk ‘{print $2}’ | cut -d/ -f1
方法 2:快速输出所有 IP(需自行筛选)
hostname -I
以实际输出为例:
执行结果
::1
192.168.66.25 # 有效 IP,优先选择
fe80::faac:ccf9:dd39:1575
192.168.122.1 # 虚拟网卡 IP,本地不可访问
关键筛选规则:排除 IPv6(以 :: 开头)和虚拟网卡 IP(如 192.168.122.x),选择与本地主机同网段的 IP(如 192.168.66.25),记录该 IP 备用。
三、本地端(VSCode):远程连接配置
本地需完成 VSCode 安装、Remote-SSH 扩展配置,核心是将虚拟机 IP、用户名等信息录入 SSH 配置文件。
3.1 安装 VSCode 与 Remote-SSH 扩展
-
下载 VSCode:从 VSCode 官网 下载对应系统版本(Windows/Mac/Linux 通用),默认安装即可;
-
安装 Remote-SSH 扩展:打开 VSCode → 左侧「扩展」图标(📦)→ 搜索「Remote-SSH」→ 点击「安装」→ 重启 VSCode 使扩展生效。
安装完成后,VSCode 左下角会出现远程连接图标(<>)。
3.2 配置 SSH 连接(推荐长期使用方案)
通过配置文件保存连接信息,后续无需重复输入 IP,步骤如下:
-
打开命令面板:按下快捷键 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(Mac),输入「Remote-SSH: Open Configuration File」并回车;
-
选择配置文件路径:首次操作会提示选择路径,选择「~/.ssh/config」(本地主机的 SSH 配置文件);
-
录入连接信息:在文件末尾粘贴以下内容,替换 IP 和用户名为实际信息:
Host centos7-eda # 自定义连接别名(如 centos7-eda,便于识别)
HostName 192.168.66.25 # 替换为虚拟机的有效 IP
User five # 替换为 CentOS 7 的登录用户名(本文为 five)
Port 22 # SSH 默认端口,无需修改 -
保存文件:按下 Ctrl+S 保存配置,配置立即生效。
3.3 建立远程连接(首次连接流程)
-
触发连接:按下 Ctrl+Shift+P,输入「Remote-SSH: Connect to Host…」并回车,在弹出的列表中选择自定义别名「centos7-eda」;
-
选择系统类型:首次连接会提示「Select the platform of the remote host」,选择「Linux」;
-
身份认证:
密码认证:输入 CentOS 7 中 five 用户的登录密码,按回车; -
密钥认证(推荐,后续免密):下文单独说明,首次可先用密码认证测试。
-
等待连接:VSCode 会自动在虚拟机上安装「vscode-server」(无需手动操作),安装完成后左下角会显示「SSH: centos7-eda」,表示连接成功。
四、优化体验:配置 SSH 密钥认证(免密登录)
密码认证每次连接需输入密码,配置密钥认证后可实现免密登录,步骤如下(本地终端执行):
4.1 本地主机生成密钥对
生成 RSA 密钥对(全程按回车,不要设置密码,否则仍需输入密钥密码)
ssh-keygen -t rsa -b 4096
生成后,密钥文件默认存储在 ~/.ssh/ 目录(Windows 为 C:\Users\你的用户名.ssh\),核心文件为:
-
id_rsa:私钥,本地保存,不可泄露;
-
id_rsa.pub:公钥,需复制到虚拟机。
4.2 复制公钥到 CentOS 7 虚拟机
通过 ssh-copy-id 命令快速复制公钥(需输入一次虚拟机密码):
替换为虚拟机的 IP 和用户名
ssh-copy-id five@192.168.66.25
手动复制备用方案(若 ssh-copy-id 不可用):
1. 本地终端打印公钥内容并复制
cat ~/.ssh/id_rsa.pub
2. 登录虚拟机,将公钥内容粘贴到 authorized_keys 文件
sudo vim ~/.ssh/authorized_keys
粘贴后保存退出
3. 配置文件权限(CentOS 7 权限严格,必须执行)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
4.3 验证免密连接
重新在 VSCode 中选择「centos7-eda」连接,无需输入密码,直接进入远程环境,配置生效。
五、连接成功后:EDA 开发场景实战
连接成功后,VSCode 与虚拟机环境完全联动,可直接开展 EDA 开发相关操作,核心场景如下:
5.1 远程编辑 EDA 项目代码
-
打开远程文件夹:左侧「资源管理器」→ 点击「打开文件夹」→ 选择虚拟机上的 EDA 项目目录(如 ~/rdma-rc-uvm-verification/rtl);
-
编辑代码:双击打开 testbench.sv、.vimrc 等文件,VSCode 支持语法高亮、自动补全,编辑体验与本地一致;
-
保存同步:修改后按下 Ctrl+S 直接保存到虚拟机,无需手动传输文件。
5.2 远程执行 EDA 命令
打开远程终端:按下 Ctrl+`(反引号)调出终端,直接执行 CentOS 7 命令:
1. 验证 VCS 环境
vcs -v # 输出版本信息,确认环境正常
2. 编译 UVM 测试台
vcs -full64 -debug_pp testbench.sv -R
3. 修改环境变量后生效
source ~/.bashrc
4. 启动 Verdi 可视化工具
verdi
5.3 安装 EDA 相关 VSCode 扩展
在远程环境中安装扩展,提升开发效率:
-
SystemVerilog:支持 SV 语法高亮、 lint 检查;
-
Remote - SSH: Editing Configuration Files:快速编辑 SSH 配置;
-
Terminal:增强远程终端功能。
六、常见问题排查(CentOS 7 专属避坑)
问题现象
核心原因
解决方案
连接超时,提示「Connection timed out」
IP 错误/网络不通/SSH 服务未启动
- 重新确认虚拟机 IP;2. 本地 ping 虚拟机 IP(如 ping 192.168.66.25);3. 重启 SSH 服务(sudo systemctl restart sshd)
密码正确但提示「Permission denied」
.ssh 目录权限错误/SELinux 干扰
- 修复权限(chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys);2. 关闭 SELinux(sudo setenforce 0)
vscode-server 安装失败
旧版本残留/网络问题
- 删除虚拟机上的残留目录(rm -rf ~/.vscode-server);2. 重新连接,等待自动安装
远程终端无法执行 VCS 命令
环境变量未加载
执行 source ~/.bashrc 加载环境变量,或重启 VSCode 终端
七、总结:核心流程与优化建议
7.1 连接核心三步
-
虚拟机端:装 SSH 服务 → 开 22 端口 → 记有效 IP;
-
VSCode 端:装 Remote-SSH → 配 SSH 配置(IP+用户名);
-
认证登录:密码/密钥认证 → 连接成功,远程开发。
7.2 优化建议
-
固定虚拟机 IP:在路由器或虚拟机网络设置中绑定 IP,避免每次连接需重新查询;
-
启用密钥认证:免密登录提升效率,且比密码更安全;
-
安装 VSCode 扩展:根据 EDA 开发需求安装语法、调试类扩展,提升编辑体验。
通过 VSCode 远程 SSH 连接 CentOS 7 虚拟机,彻底解决了 EDA 开发中「虚拟机编辑不便」与「本地环境不兼容」的矛盾,实现了图形化编辑与 Linux 工具链的完美结合,大幅提升开发效率。
更多推荐


所有评论(0)