linux虚拟机连不上SSH怎么办
linux虚拟机连不上SSH怎么办详细介绍
针对 Linux 虚拟机 SSH 连接失败的问题,可按以下步骤逐步排查(以 Ubuntu 为例):
一、基础检查(虚拟机内操作)
- 确认 SSH 服务运行
bashsystemctl status sshdsystemctl restart sshd
- 检查 SSH 配置文件
bash/etc/ssh/sshd_configPort
PermitRootLogin
PasswordAuthentication
保存后重启服务:
sudo systemctl restart sshd - 查看防火墙规则
bashufw statusufw allow /tcp
二、网络与连接测试(主机 / 虚拟机双向验证)
- 确认虚拟机 IP
虚拟机内运行:
bashaddr show - 主机 Ping 虚拟机
bash.1.100 - 测试 SSH 端口连通性
主机运行:
bash.1.100telnet .1.100
三、认证问题排查
- 密码登录测试
虚拟机内确认密码正确:
bash主机尝试登录:
bashubuntu@192.168.1.100 - 密钥登录检查
- 若使用密钥,确认公钥已写入虚拟机:bash
~/.ssh/authorized_keys - 主机私钥权限是否正确:bash
~/.ssh/id_rsa
- 若使用密钥,确认公钥已写入虚拟机:bash
四、虚拟机网络配置(以 VMware 为例)
- NAT 模式端口转发
虚拟机设置 → 网络适配器 → NAT → 端口转发:
添加规则:主机端口 2222 → 虚拟机端口 22(连接时用ssh -p 2222) - 桥接模式 IP 冲突
确保虚拟机 IP 与主机在同一网段(如主机 192.168.1.xxx,虚拟机也需为同网段)
五、查看详细日志(终极排查)
虚拟机内查看 SSH 登录日志:
bash
/var/log/auth.log
总结流程图
plaintext
连接失败 → 检查 sshd 状态 → 防火墙规则 → Ping/端口测试 → 认证方式 → 网络配置 → 看日志
912连接失败 → 检查 sshd 状态 → 防火墙规则 → Ping/端口测试 → 认证方式 → 网络配置 → 看日志
按此流程逐步验证,90% 以上的 SSH 连接问题可解决。若仍失败,可补充报错信息进一步分析(如 ssh -v 详细日志)。