Skip to content

ssh连接虚拟机CentOS

首先,此时我们已经在电脑本机有了一台虚拟机(本次使用VMware),并且安装了CentOS系统

然后我们电脑需要安装一个ssh工具,比如xshell,但是xshell收费,免费又是阉割版

不如使用ashell

CentOS默认启动目标

linux系统本来都是一个个文件与文件夹,在CentOS中,我们可以安装图形界面,我们可以使用以下指令切换默认启动是终端,还是图形界面

1.获取默认启动目标

bash
systemctl get-default

返回的结果有两中

bash
multi-user.target  # 命令行模式(纯终端,无图形界面启动)

graphical.target  #  图形界面模式(会启动 GNOME/KDE 等桌面)

2.进一步确认当前正在运行的 target

bash
systemctl list-units --type=target

如果看到 graphical.target处于 active状态,说明当前已进入图形模式;

如果只有 multi-user.target,就是命令行模式。

3.设置默认启动目标,需要 root 权限

bash
sudo systemctl set-default multi-user.target # 设置默认启动为终端
sudo systemctl set-default graphical.target # 设置默认启动为图形界面

设置完之后可以再次运行systemctl get-default查看是否修改成功

4.立即切换到命令行模式(不重启)

bash
sudo systemctl isolate multi-user.target

检查CentOS的SSH服务

ashell 这类软件通过 SSH 协议连接

启动并设置自启(用 root 或 sudo 权限):

bash
sudo systemctl start sshd
sudo systemctl enable sshd

确认状态

bash
systemctl status sshd

看到 active (running)即正常

image-20260717214200813

若防火墙开着,需放行 22 端口(或临时关闭测试):

bash
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

验证:

bash
sudo firewall-cmd --list-all | grep ssh

确认虚拟机网络模式

首先在vm菜单栏点击编辑->虚拟网络编辑器

image-20260717213933174

选择 VMnet8,确认下面选择的是NAT模式

并且记住子网ip,假设这台虚拟机的子网IP是192.168.150.0

image-20260717220504024

点击NAT设置,记录网关IP,假设这台虚拟机的子网IP是192.168.150.2

image-20260717220619258

确认 Windows VMware 服务

电脑本机win+r,输入services.msc,找到以下两个项目

  • VMware NAT Service
  • VMware DHCP Service

如果这两项状态都是正在运行,且启动类型都为自动,就ok

这样可以确保ssh工具可以连上

image-20260717220827402

查找网卡名

虚拟机终端输入:

bash
ip addr

会看到ens*字眼,那么以下虚拟机的网卡名就是ens160,有的可能是ens33

image-20260717221050876

可以输入以下指令查看相应的网卡文件名

bash
ls /etc/sysconfig/network-scripts/ifcfg-*

可以看到此文件夹下你的网卡配置文件

image-20260717214618669

那么我的配置文件就是ifcfg-ens160

编辑网卡文件

虚拟机终端输入

bash
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

用户权限不足

在输入sudo指令时,可能会报以下错误

bash
xxx is not in the sudoers file.  This incident will be reported.

就是当前用户的全部不足,不能使用sudo指令

我们需要先切换到root用户

bash
su -

然后把你的用户名添加入wheel组,xarzhi是我的用户名

bash
usermod -aG wheel xarzhi

然后注销当前会话重新打开终端,或者执行

bash
su - xarzhi

然后再使用sudo指令应该就可以了

进入到网卡文件页面后可以看到如下内容

image-20260717221856790

进入后默认是命令模式,按 i 键 → 进入编辑模式(左下角会出现 -- INSERT --

我们需要修改以下内容,以下内容若有相同字段,就把值修改了,若没有相应字段,就在最后另起一行添加这些字段和值

其中192.168.150.*是上面记住的网关,这个根据自己网关来

txt
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens160"
DEVICE="ens160"
ONBOOT="yes"

IPADDR="192.168.150.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.150.2"
DNS1="8.8.8.8"
DNS2="114.114.114.114"

修改好之后按ESC,输入:wq再回车就可以退出编辑模式

然后虚拟机终端输入以下指令重启网络服务

bash
sudo systemctl restart NetworkManager

验证网络配置

然后虚拟机终端输入

bash
ip addr show ens160

应该可以看到以下内容

bash
inet 192.168.150.100/24

image-20260717224119582

TIP

如果不是192.168.xxx.100的话,比如192.168.xxx.134之类的

最好的方法是重启虚拟机,然后再输入ip addr看看

也可以使用如下指令

bash
sudo nmcli connection down ens160
sudo nmcli connection up ens160

再输入

bash
ip route

应该会有以下内容

bash
default via 192.168.150.2 dev ens160

测试联通性

虚拟机终端分别输入

bash
ping 192.168.157.2
ping 8.8.8.8

如果一直有以下内容输入就没问题

image-20260717222836096

ashell连接

主机名写入ip addr获取到的网关名192.168.150.100,端口号是22,然后输入centOS的密码

就可以连接成功了

image-20260717224016150

可以输入几个linux指令试试

image-20260717224239565

不仅是ashell,使用xftp或者winscp也可以连接

MIT Licensed