若未安装OpenSSH服务器,无法提供SSH登录服务。在CentOS虚拟机终端执行以下命令检查:
rpm -q "openssh-server"
若无输出,说明未安装,需通过以下命令安装:
sudo yum install openssh-server -y
安装完成后,继续下一步。
安装完成后,需启动SSH服务并配置其为开机自动启动:
sudo systemctl start sshd # 启动SSH服务
sudo systemctl enable sshd # 设置开机自启
通过以下命令验证服务状态(显示“active (running)”即为正常):
sudo systemctl status sshd
ip addr或ifconfig(需安装net-tools),找到网络适配器(如ens33)的IP地址(通常为192.168.x.x或10.x.x.x格式)。ping <虚拟机IP>,若通则表示网络正常;若不通,需检查:
CentOS默认使用firewalld防火墙,需开放SSH端口(默认22):
sudo firewall-cmd --permanent --add-service=ssh # 永久添加SSH服务规则
sudo firewall-cmd --reload # 重新加载防火墙配置
若使用ufw防火墙(较少见),执行:
sudo ufw allow ssh
若需调整SSH登录设置(如允许root登录、修改端口、启用密钥认证),需编辑配置文件:
sudo nano /etc/ssh/sshd_config
常见修改项:
PasswordAuthentication yes
prohibit-password,若需root登录改为yes):PermitRootLogin yes
Port 2222
修改完成后,保存文件(Ctrl+O→Enter→Ctrl+X),并重启SSH服务:
sudo systemctl restart sshd
注意:若修改了端口,后续连接需指定端口(如ssh -p 2222 user@IP)。
在宿主机使用SSH客户端连接虚拟机:
ssh <用户名>@<虚拟机IP>
例如:ssh root@192.168.1.10,输入密码即可登录。ssh -p <端口号> <用户名>@<虚拟机IP>
例如:ssh -p 2222 root@192.168.1.10。su - <用户名>测试本地登录);若使用密钥认证,需将公钥(id_rsa.pub)复制到虚拟机的~/.ssh/authorized_keys文件中。sudo setenforce 0),若连接成功,需配置SELinux允许SSH(如sudo semanage port -a -t ssh_port_t -p tcp 2222)。通过以上步骤,可逐步排查并解决CentOS虚拟机SSH登录问题。若仍有异常,建议检查虚拟机日志(/var/log/secure)获取具体错误信息。