连接本地 Linux 虚拟机 SSH 失败的常见原因及解决步骤如下:
1. 检查虚拟机网络设置
- 确保虚拟机的网络模式设置为"桥接"或"NAT"。
- 检查虚拟机 IP 地址是否和主机在同一网段。
2. 检查 SSH 服务是否已启动
- 在虚拟机上运行 `service sshd status` 或 `systemctl status sshd` 命令,检查 SSH 服务是否正在运行。
- 如果没有运行,启动 SSH 服务 `service sshd start` 或 `systemctl start sshd`。
3. 检查防火墙设置
- 确保防火墙允许 SSH 连接(默认端口为 22)。
- 在虚拟机上运行 `firewall-cmd --list-all` 查看防火墙状态,如果需要开放 SSH 端口,可使用 `firewall-cmd --add-port=22/tcp --permanent` 命令。
4. 检查 SSH 配置文件
- 确保 SSH 配置文件 `/etc/ssh/sshd_config` 中 `PermitRootLogin` 和 `PasswordAuthentication` 项没有被禁用。
5. 检查密钥认证
- 如果使用密钥认证,确保在主机上将公钥正确添加到虚拟机的 `~/.ssh/authorized_keys` 文件中。
- 确保密钥对的权限设置正确,私钥的权限应为 `600`。
6. 检查安全组/防火墙规则
- 如果虚拟机部署在云平台上,确保云平台的安全组或防火墙规则允许 SSH 入站连接。
如果以上步骤仍无法解决问题,可以尝试通过虚拟机控制台或 VNC 远程连接虚拟机,排查其他可能的故障原因。