利用vmware搭建华为自研openEuler系统
选择linux内核
设置虚拟机名称及存储位置
设置cpu数量和每个核数,这边我设置了一个cpu,两个核,因为这样速度快
设置内存大小
设置网络类型为NAT模式
设置该磁盘为单独磁盘
设置网卡地址,确保都在同个局域网中,这是vmnet1,主机模式,适用于隔离测试,不连接外网
这是vmnet8网卡,适用于日常连接,可以连接外网**
设置vmnet8的网关地址
ipconfig查看是否更改成功
更改密码
echo123456|passwdstdin rootxshell连接虚拟机,不关闭防火墙,用Xshell连接Linux虚拟机
核心思路:不关闭firewalld,只放行SSH端口(默认22),兼顾安全和远程连接。
前提确认
- 虚拟机和宿主机网络互通(推荐:NAT模式,也可用桥接)
- 虚拟机内
sshd服务已经启动 - 拿到虚拟机IP:
ip a
一、检查状态
# 查看防火墙状态systemctl status firewalld# 查看ssh服务状态systemctl status sshdfirewalld active:防火墙正在运行(我们要保留)sshd active:SSH服务正常;没启动就执行:
systemctl start sshd systemctlenablesshd#开机自启# 修改配置文件后需要重启# CentOS/RHEL/openEulersystemctl restart sshd# Ubuntu/Debiansystemctl restartssh二、放行SSH端口(两种方式任选其一)
方式1:放行服务名(推荐,firewalld内置ssh服务规则)
# 永久放行ssh,--permanent永久生效 firewall-cmd --permanent --add-service=ssh # 重载防火墙配置,让规则立刻生效 firewall-cmd --reload方式2:直接放行端口号(如果SSH改了端口就用这个)
假设ssh端口为22(默认)
firewall-cmd --permanent --add-port=22/tcp firewall-cmd --reload三、查看防火墙规则是否添加成功
# 查看所有永久规则 firewall-cmd --permanent --list-all输出里面能看到services: ssh或者ports:22/tcp代表成功。
四、Xshell连接配置
- 新建会话,主机填虚拟机IP,端口22
- 用户名密码填虚拟机账号密码,连接
五、排查常见问题(连不上的时候按顺序查)
- 虚拟机内部测试:
ssh 本机IP,看能不能本地ssh登录,排除sshd问题 - 宿主机cmd ping 虚拟机IP:ping不通 = 网络问题(NAT/桥接配置),不是防火墙问题
- 确认虚拟机防火墙放行22,宿主机Windows防火墙也要放行虚拟机网段(很多人漏掉宿主机防火墙)
- 检查虚拟机
/etc/ssh/sshd_config:是否允许密码登录**(默认开启)**
PasswordAuthentication yes改完重启sshd:systemctl restart sshd
六、补充知识点(面试)
- 不要
systemctl stop firewalld关闭防火墙,会暴露所有端口,不安全 --permanent:永久规则,不加重载不会生效;不加这个只临时生效,重启防火墙丢失firewall-cmd --reload:不中断已有连接,只加载新规则- 如果你是CentOS6(老版本iptables)命令不一样,现在主流CentOS7+/Rocky/AlmaLinux都是firewalld
七、撤销规则(不需要ssh远程时)
firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload一句话总结
不关闭防火墙,只在firewalld添加SSH服务/22端口放行规则,重载配置;
同时保证虚拟机网络通、sshd正常运行,即可Xshell远程连接。
Windows 端测试 SSH 连通性(3 个层级,从底层到完整登录)
Windows10 1809+/Win11 自带 OpenSSH 客户端,PowerShell / CMD 都能用
1. 检查 Windows 有没有 ssh 客户端
ssh -V输出版本号代表已有;提示不是命令,需要在 Windows 功能里安装 OpenSSH 客户端。
2. 先测端口通不通(只检测 22 端口能不能访问,不做登录)
方式 A(PowerShell 推荐)
Test-NetConnection 虚拟机IP -Port 22TcpTestSucceeded: True→ 网络 + 防火墙放行 22 端口成功- False:防火墙没开 / 网络不通 /sshd 没启动
方式 B(老式 telnet,不推荐,需要手动开启 telnet 客户端)
telnet 虚拟机IP 22黑屏代表端口通;报错连接失败 = 不通。
3. 完整 SSH 登录测试(直接验证 PasswordAuthentication 是否生效)
# 默认22端口 ssh 虚拟机用户名@虚拟机IP # 如果ssh端口不是22,用-p指定端口 ssh -p 2222 虚拟机用户名@虚拟机IP示例:
ssh root@192.168.122.100- 首次连接提示指纹:输入
yes回车 - 提示输入密码:能输入密码登录成功 →PasswordAuthentication yes 生效
- 直接提示 Permission denied,不让输密码 → PasswordAuthentication 是 no
创建快照