VMware创建虚拟机安装RHEL9并配置SSH远程连接的完整实战指南
发布时间:2026/10/8 2:49:15 锦皓数字建站

想在公司电脑上折腾 Linux 服务器又不敢碰真实硬件最靠谱的方案就是开个虚拟机练手。我最近正好从零走了一遍“VMware 创建虚拟机 → 安装 RHEL9 → 宿主机用 SSH 连进去”的完整流程整个过程不算复杂但有几个坑确实容易让新手卡住。写这篇文章就是把这条链路拆开揉碎把我实际踩过的坑、改过的配置、验证过的方法都记录下来。不管你是刚接触 Linux 的小白还是想在本地快速搭一套 RHEL9 练手环境的老手照着做基本都能跑通。1. 为什么推荐“VMware RHEL9 SSH”这个组合先说选型逻辑。标题里的三个关键词——VMware、RHEL9、SSH——其实是三个各管一段的选择。VMware 系列里我建议直接用 VMware Workstation Pro现在对个人用户也放开了免费许可。它比 VirtualBox 对 RHEL 的兼容性更省心虚拟网卡驱动、图形界面渲染都少出幺蛾子。而且网上 VM 相关的教程存量最大出问题搜起来方便。为什么选 RHEL9 而不是 CentOS Stream 或者 Rocky Linux因为 RHELRed Hat Enterprise Linux是红帽的商业发行版很多企业内部生产环境就是用它学会 RHEL 的安装、订阅、软件仓库逻辑换到其他 Red Hat 系发行版基本无缝衔接。RHEL 9 对应的是内核 5.14默认启用 SELinux、firewalld、sshd这些都是生产环境的标准组件拿来练手正好把它们都过一遍。SSH 则是远程管理 Linux 服务器的基本操作。在虚拟机里敲键盘和在真实服务器上远程操作体验差距很大——真实服务器没有显示器、没有图形界面所有操作都靠 SSH。如果你将来要面对云服务器、物理机运维那么“从宿主机 SSH 连进虚拟机”这一步迟早要练。而且这条链路验证通了之后虚拟机放在后台跑你在宿主机上写代码、传文件、翻日志效率高很多。一句话总结VMware 管“怎么跑起来”RHEL9 管“这是一个标准 Linux 系统”SSH 管“怎么远程进去干活”。这套组合是最接近真实服务器环境、又最安全无害的实验场景。提示如果你的电脑内存只有 8GB建议先关掉其他大软件再开虚拟机RHEL9 图形界面吃 2GB 内存起步分配 2GB 确实能跑但会比较吃力。2. 创建虚拟机时的关键配置决定了你后面顺不顺利双击 VMware Workstation选择“创建新的虚拟机”。这一步新手容易纠结用典型还是自定义我的建议是一路“自定义高级”原因是虚拟机硬件参数在典型模式下隐藏了不少选项而后面大概率要调整。跟着向导走注意这几个核心选项。2.1 选择镜像还是稍后安装向导第二步会问“安装程序光盘映像文件”还是“稍后安装操作系统”。经常有人图省事直接选 ISO 镜像然后继续下一步这样 VMware 会自动检测到系统类型但后面想改虚拟硬件配置会多一道手。我的实际操作是选“稍后安装操作系统”单独把 RHEL9 的 ISO 文件留着等虚拟机创建完成再挂载光驱。原因很简单先让虚拟机“裸奔”建立起来硬件参数完全由我自己定再在虚拟机设置里挂载 ISO 启动安装流程控制最清楚。2.2 客户机操作系统类型一定要选对在“客户机操作系统”这一步选择 “Linux”版本下拉列表里选 “Red Hat Enterprise Linux 9 64 位”。注意有两个关键点版本必须选 9 而不能选 8因为 VMware 针对不同 Linux 版本启用的虚拟硬件兼容性、ACPI 表、显卡驱动模型不完全一样。选错了虽然也能启动但可能遇到时钟跳动异常、显卡分辨率不对等小毛病。必须选 64 位现在的 RHEL9 只有 64 位镜像选 32 位版本会导致虚拟机无法正常识别镜像。2.3 内存、CPU、磁盘的合理下限根据 RHEL9 官方建议和我的实测这套配置比较稳内存4GB。如果你真的只有 8GB 物理内存降到 2GB 也可以安装但装完后跑 GNOME 图形界面会明显卡顿。如果只追求“装完系统 SSH 操作”2GB 够用。处理器2 核心就够RHEL9 安装过程不靠多核提速瓶颈一般在 IO 和网络。硬盘建议 20GB 以上。RHEL9 完整安装带图形界面大约占 6-8GB但后续安装软件、缓存更新会持续膨胀留 20GB 才不用天天清空间。我实际分了 30GB。2.4 网络模式怎么选NAT 还是桥接这一步是新手重灾区。VMware 提供三种网络模式桥接、NAT、仅主机。很多人看不懂区别随手选了一个后面 SSH 连接失败又回来自查半天。我的建议是练习场景选NAT 模式。NAT 模式下虚拟机通过宿主机共享 IP 上网宿主机和虚拟机之间能互通虚拟机也能访问外网。最关键的是NAT 网络里虚拟机的 IP 是 VMware 虚拟出来的网段一般 192.168.x.0/24宿主机可以直接访问它不需要和物理局域网环境打交道。桥接模式则是让虚拟机直接占用局域网一个 IP看起来更像真机但公司/学校网络可能有限制比如端口隔离、IP 白名单容易导致 SSH 不通。家庭网络还好但在公共环境练手还是 NAT 最省心。基于这个选择虚拟机里 RHEL9 开机后大概率通过 DHCP 自动获取一个 192.168.x.x 地址只要记住这个地址宿主机就能连。还有一个隐藏坑“自定义网络”里可以修改 NAT 网段但新手不需要动它。保持默认后面排查问题能少很多变量。3. 安装 RHEL9 操作系统的全过程与细节硬件建好后VMware 主界面会多出这台虚拟机。我先在“虚拟机设置”里把 RHEL9 的 ISO 文件挂载到 CD/DVD 光驱然后点击“开启此虚拟机”。弹出的界面可以选择“Install Red Hat Enterprise Linux 9.x”或“Test this media install”。我一般选第一个直接进入安装环境省掉介质校验时间。3.1 安装界面语言和本地化设置启动后进入一个图形化的引导界面第一步设置语言。这里我习惯保留英文English (United States)原因是 RHEL 安装器很多菜单项在中文翻译下反而容易让人误解比如“Software Selection”翻译成“软件选择”还算正常但“Installation Destination”翻译成“安装目的地”就有点别扭。英文界面选项和命令终端里的提示信息更贴近后面出问题搜英文报错也更方便。接下来配置区域和键盘。Region 选 “Asia”City 选 “Shanghai”键盘默认 “English (US)”。这里比较重要的是时区因为很多日志时间对不对就看它如果不选上海系统默认可能是 UTC日志和本地时间差 8 小时SSH 排错时看时间会发懵。3.2 Software SelectionServer with GUI 还是 Minimal这是一个会影响后续体验的关键选择。安装源里默认 BaseOS 和 AppStream 两个仓库都可用。软件选择里有两类大项带图形界面的服务器例如 “Server with GUI”。这是给想用桌面环境的人准备的安装完能直接进 GNOME 图形界面。缺点是占磁盘、占内存。最小安装只含命令行工具和核心服务没有图形界面。更接近真实服务器环境也更省资源。如果你是第一次接触 Linux想看到桌面再稳一下心态可以先选 “Server with GUI”。如果目标就是“装完系统直接用 SSH 进去敲命令”那建议选 “Minimal Install”。我个人的选择是 Minimal Install因为这台虚拟机就是个 SSH 练习环境图形界面在真实服务器里基本用不到而且去掉 GUI 后安装速度快很多内存占用也低SSH 连接测试时不受桌面组件干扰。3.3 安装目的地和分区进到 “Installation Destination”默认是自动分区Automatic。很多教程让你这不是手动分区把 /boot、swap、/ 分得很细致。我说实话练习场景自动分区就行。RHEL9 默认会创建 LVM自动生成/和swap逻辑卷这对新手足够稳定。如果你非要手动分区记住最小配置/boot512MB 到 1GB设置为标准分区。/剩余全部空间文件系统选 xfs 或 ext4。swap大小等于物理内存即可或者干脆不建 swap用 zram。我这次用的自动分区。自动分区还有一个好处如果后续要用 LVM 扩容默认布局已经留了余地不需要重新折腾。磁盘加密选项Encrypt my data我建议不勾练习机没有必要万一忘记密码恢复起来很麻烦。3.4 KDUMP 和网络看起来不重要实际影响体验KDUMP 是内核崩溃转储机制默认开启。它会预留一块内存用于系统崩溃时保存 vmcore。但是在虚拟机上这个功能用处不大而且它会占用几百 MB 内存。RHEL9 安装界面里有一个 “KDUMP” 选项我直接关闭unchecked。省下来的内存留给虚拟机本身。网络和主机名设置Network Host Name也要注意。默认情况下网卡是关闭的off必须手动打开。点进去后在左侧看到网卡ens160把右上角的开关切换到 ON。这样系统安装完成后网络自动启用DHCP 自动获取 IP。主机名可以顺手改成rhel9-lab之类方便后面识别。3.5 root 密码和用户创建设置 root 密码时RHEL9 默认要求强密码至少 8 位包含大小写和数字。新手经常设了一个简单密码系统提示 too weak 还硬要确认结果无法继续。我建议就设一个稍微复杂但好记的密码比如Rhel9-2024-abc这种。root 是 Linux 管理员的最高权限账户练习环境里用 root 登录比较方便但要注意生产环境通常禁止 root 直接 SSH。同时创建一个普通用户勾选 “Make this user administrator”这样普通用户可以 sudo 提权。RHEL9 不像 Ubuntu 默认直接允许 root SSH普通用户在 SSH 配置里默认也能登录。创建用户的另一个好处是以后操作尽量用普通用户避免一直拿 root 在系统里乱跑。全部设置完后点击 “Begin Installation”。安装过程大概 10-20 分钟视磁盘性能而定。等待期间不需要操作安装日志显示进度。提示RHEL9 安装完成后首次启动会要求接受许可或者连接 Red Hat 账户。如果断网或不想订阅可以跳过注册不影响系统基本的 SSH 登录和本地操作。但dnf install更新软件包可能被限制需要配置本地介质仓库或换用其他仓库源。4. 重启后的第一件事确认 IP、网络和 SSH 服务状态RHEL9 安装完成后虚拟机会自动重启重启后进入 grub 菜单然后进入系统。如果前面选了 Minimal Install看到的是一个纯字符登录界面如果选了 GUI会进入图形登录。输入用户名密码登录成功后先别急着干别的按顺序做三件事确认 IP、检查网卡状态、确认 sshd 是否在运行。4.1 用 ip addr 和 ping 确认网络通不通登录后终端敲ip addr会看到网卡信息。正常情况下类似这样2: ens160: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.xxx.xxx/24 brd 192.168.xxx.255 scope global dynamic noprefixroute ens160记下这个 IP比如192.168.137.100后面宿主机 SSH 连接靠它。如果发现网卡没有 UP或者没有任何 inet 地址可能是安装时没有打开网络用 nmcli 手动拉起nmcli device status nmcli connection up ens160然后ip addr再看一次。如果还是没有 IP检查虚拟机设置里的网络连接是否选了 NAT以及 VMware 的 NAT 服务是否在宿主机后台正常运行Windows 服务列表里的 VMware NAT Service。验证网络通不通ping 一下宿主机和公网ping -c 3 192.168.xxx.1 # 网关通常是宿主机 NAT 虚拟网卡的地址 ping -c 3 www.baidu.com网关能通说明 VMware 虚拟网络没问题公网能通说明 DNS 和路由都正常。公网不通时先看 DNS 配置改/etc/resolv.conf或使用nmcli connection modify设置 DNS。4.2 sshd 服务默认状态与开启方法RHEL9 安装时如果选了 Server with GUI 或 Minimal Installopenssh-server 通常会装好但服务不一定开启也可能没有设置开机自启。确认一下systemctl status sshd如果显示active (running)说明服务已经起来了。如果显示inactive (dead)或Unit sshd.service could not be found说明没起来或没安装。没起的话执行sudo systemctl enable --now sshd没安装的话需要先挂载 RHEL9 安装 ISO 作为本地仓库再安装或者用已经注册订阅好的软件源。练习场景里最方便的是重新挂载 ISO。挂载 ISO 本地仓库的具体操作sudo mkdir -p /mnt/cdrom sudo mount /dev/sr0 /mnt/cdrom然后写一个 repo 文件sudo vi /etc/yum.repos.d/local.repo内容大概是[local-baseos] nameLocal BaseOS baseurlfile:///mnt/cdrom/BaseOS enabled1 gpgcheck0 [local-appstream] nameLocal AppStream baseurlfile:///mnt/cdrom/AppStream enabled1 gpgcheck0然后sudo dnf install openssh-server安装完再执行systemctl enable --now sshd。4.3 防火墙和 SELinux 会不会拦住 SSHRHEL9 默认启用 firewalld 和 SELinux。如果你之前用过别的发行版这个环节容易漏sshd 起来了但防火墙没放行宿主机连不上。查看防火墙状态sudo firewall-cmd --state如果返回running确认 ssh 服务是否放行sudo firewall-cmd --list-all在services列表里看到ssh或者端口列表里有22/tcp就没问题。如果没有放行sudo firewall-cmd --add-servicessh --permanent sudo firewall-cmd --reloadSELinux 这边默认的 Enforcing 模式下 SSH 服务在该放行的端口22上不会拦截不需要额外配置。如果你把 SSH 改到其他端口才需要执行sudo semanage port -a -t ssh_port_t -p tcp 你的端口号练习阶段不建议折腾改端口保持默认 22减少排查维度。5. 从宿主机 SSH 连接虚拟机的完整操作网络和 sshd 都确认没问题后回到宿主机操作。Windows 10/11 自带了 OpenSSH 客户端不用额外装软件。打开 PowerShell 或 CMD直接敲ssh root192.168.xxx.xxx第一次连接会提示确认主机指纹输入yes然后回车。接着输入密码root 密码密码输入时终端不显示任何字符这是 Linux 的常规表现不是卡住了。登录成功后命令行提示符会变成类似[rootrhel9-lab ~]#说明已经成功远程进入虚拟机系统。到这里“VMware RHEL9 SSH”这条链路就彻底打通了。5.1 如果提示挂载了错误的主机指纹Host key verification failed经常有这种情况虚拟机的系统重装了或者重建了一台相同 IP 的新虚拟机宿主机再连接时会收到类似提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!这是因为宿主机~/.ssh/known_hosts里记录了旧虚拟机的公钥IP 没变但公钥变了。解决办法是把旧的记录删掉ssh-keygen -R 192.168.xxx.xxx然后重新连接接受新的指纹就行。不要直接跳过指纹校验尤其注意安全提示。5.2 常见认证失败原因密码错误和 root 登录限制输入密码后如果提示Permission denied, please try again.先怀疑自己密码输错了多试两次。如果密码确实没错那可能是 sshd 配置里禁止 root 远程登录。RHEL9 默认/etc/ssh/sshd_config里有PermitRootLogin yes但有些加固过的模板或后续修改会把它改成prohibit-password甚至no。在虚拟机里改回来sudo vi /etc/ssh/sshd_config找到PermitRootLogin改成yes然后重启服务sudo systemctl restart sshd如果是普通用户登录被拒检查用户名拼写以及该用户是否设置了密码sudo passwd 用户名。5.3 连接超时Connection timed out的网络排查链如果是Connection timed out说明宿主机和目标虚拟机之间根本不通。按这个顺序排查虚拟机里的 IP 还在吗——可能 DHCP 租约刷新后 IP 变了。重新ip addr确认。宿主机能不能 ping 通虚拟机 IP——用ping 192.168.xxx.xxx。如果宿主机 ping 不通回到 VMware 虚拟网络设置检查。VMware NAT 服务是否运行——Windows 服务管理器里确认 “VMware NAT Service” 和 “VMware DHCP Service” 都在运行。虚拟机里的防火墙和 sshd 状态——回到第 4 节的步骤重查。有一个容易被忽略的点VMware 会创建多个虚拟网络VMnet1、VMnet8 等。NAT 模式对应的是 VMnet8要确保虚拟机确实连接在 VMnet8 上而不是默认的 VMnet1仅主机模式。6. 更进一步配置静态 IP 和 SSH 密钥登录让这套环境更好用DHCP 分配的 IP 有一个问题重启之后可能变化宿主机里的 SSH 连接配置、脚本指向的 IP 就全断了。练习环境建议直接把虚拟机的 IP 改成静态一劳永逸。6.1 通过 nmcli 配置静态 IP避免下次重启连不上RHEL9 网络管理器主要是 NetworkManager配置网络推荐用 nmcli而不是直接改/etc/sysconfig/network-scripts/ifcfg-*。原因很简单nmcli 会同步更新 NetworkManager 的配置文件改错了还可以用 nmcli 回滚。先看网卡名和连接名nmcli device status比如网卡 ens160连接名 ens160。修改为静态 IPsudo nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.xxx.100/24 ipv4.gateway 192.168.xxx.1 ipv4.dns 223.5.5.5注意网关地址要和 VMware NAT 网络保持一致通常.1就是网关。DNS 可以先用阿里或腾讯的公共 DNS也可以只写网关地址让虚拟机通过 NAT 转发 DNS 请求。然后重启连接sudo nmcli connection down ens160 sudo nmcli connection up ens160再ip addr确认 IP 已经变成静态地址。6.2 配置 SSH 密钥登录免密进入虚拟机顺便练一个生产环境常用操作密码登录虽然简单但每次都要输密码而且在真实生产环境里密码登录是安全弱项。练习环境正好把 SSH 密钥登录配置一遍属于进阶加分项。在宿主机上生成密钥ssh-keygen -t ed25519 -C rhel9-lab一路回车会在~/.ssh/下生成id_ed25519和id_ed25519.pub。然后把公钥传到虚拟机ssh-copy-id -i ~/.ssh/id_ed25519.pub root192.168.xxx.xxx这个过程需要输入一次密码。完成后再次 SSH 登录就不需要密码了ssh root192.168.xxx.xxx如果不想用ssh-copy-id也可以手动把公钥追加到虚拟机的~/.ssh/authorized_keys。这一步我建议练习一下因为很多真实环境没有ssh-copy-id工具只能手动追加。6.3 为了安全可以禁用密码登录密钥登录验证没问题后可以考虑把/etc/ssh/sshd_config里的PasswordAuthentication改成no并重启 sshd。这样虚拟机只接受密钥登录密码登录直接拒绝。练习场景里这个操作能帮你理解 SSH 认证机制。但注意别在确认密钥登录能正常使用之前就关掉密码登录否则你自己会被锁在外面。我自己第一次调这个配置时就是先改了PasswordAuthentication no然后发现客户机连不上最后回到 VMware 控制台重新改回来。教训就是修改 SSH 配置前先确认控制台访问可用或者干脆开一个额外 SSH 会话。7. 我把这套流程跑了几遍之后还想再提醒你几件事从创建虚拟机到 SSH 成功连接整套流程最大的价值不是“装好了一个系统”而是让你把虚拟化、网络、远程管理这三层概念串起来了。第一个提醒凡是改配置尽量一次只改一个变量。比如 SSH 连不上不要同时关防火墙、改 sshd 配置、换静态 IP否则问题混在一起你根本不知道哪个改动解决了问题。先保持虚拟机 DHCP 网络不变单独排查 sshd 和防火墙等连通之后再考虑静态 IP 和密钥登录。第二个提醒虚拟机快照是后悔药。在 RHEL9 装完、SSH 刚连通的时候给虚拟机做一个快照。之后试各种配置改崩了恢复快照重来比重新安装系统快得多。VMware 里右键虚拟机 → 快照 → 拍摄快照。我在折腾 sshd 配置时光靠快照就省下了重装系统的两个小时。第三个提醒SSH 会话里退出时不要直接关掉终端窗口先执行exit或logout然后再关窗口。直接关窗口会让服务端觉得这个连接异常断开虽然现代 sshd 能处理掉线但养成规范习惯对将来操作真实服务器有好处。最后这套环境跑通之后接下来可以试试在虚拟机里用dnf安装 Nginx、配置 systemd 服务、再挂一块虚拟硬盘做 LVM 扩容。这些都是真实服务器日常操作而现在你已经有了一条稳定的 SSH 通道去做这些练习了。我自己的体会是把这条链路反复打通几遍比看多少教程都管用。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。