虚拟机SSH CRT配置过程中遇到问题,根源多半出在IP、SSH服务、防火墙三处,按顺序排查30秒内就能定位。
虚拟机SSH CRT配置过程中遇到问题?先分清“连不上”和“连上就断”
很多朋友在VMware里装好Linux,兴冲冲打开SecureCRT准备连接,结果要么提示“Connection refused”,要么卡在“Connection timed out”,这两种表现指向完全不同的问题,乱试只会上头。
Connection refused说明目标主机收到了请求,但SSH服务没在监听,或者端口不对。Connection timed out说明数据包根本没到虚拟机,大概率是IP不通或防火墙拦截,用一句话判断:先ping虚拟机IP,通不通决定了往哪个方向查。
SecureCRT连接虚拟机失败?先确认虚拟机IP没“跑丢”
虚拟机默认使用NAT模式时,IP由VMware虚拟路由器分配,如果虚拟机里没配静态IP,重启后可能变地址,SecureCRT里保存的老IP自然连不上。
实操步骤:
- 在虚拟机里执行
ip addr或ifconfig,记下当前eth0或ens33的IP。 - 对比SecureCRT会话中的主机名,不一致就改。
- 想彻底省事,在/etc/sysconfig/network-scripts/ifcfg-ens33里把BOOTPROTO改成static,填上IP、掩码、网关和DNS。
还有一种情况:虚拟机开了但SecureCRT完全超时,检查VMware虚拟网络编辑器,确认NAT模式的子网IP段和虚拟机内IP在同一个段,比如虚拟网络里子网是192.168.66.0,虚拟机却是192.168.1.100,那肯定不通。
虚拟机SSH连接超时怎么解决?30秒检查这三个服务状态
IP没问题后,进入虚拟机执行systemctl status sshd,看到active (running)就放心,看到inactive或failed,执行systemctl start sshd并systemctl enable sshd

让它开机自启。
防火墙是第二号杀手,很多系统默认开启firewalld或ufw,直接放行22端口即可。
- CentOS/RHEL系:
firewall-cmd --permanent --add-port=22/tcp && firewall-cmd --reload - Ubuntu/Debian系:
sudo ufw allow 22/tcp && sudo ufw reload - 顺手检查SELinux:临时测试用
setenforce 0,长期关闭需改/etc/selinux/config。
如果服务已启动、防火墙也放行,还是超时,看看虚拟机网络适配器是否被断开,VMware菜单栏“编辑”→“虚拟网络编辑器”里,NAT模式对应的网卡如果是“已断开”,连接肯定失败,30秒内能排查完的就这些,多数情况到这里已经解决了。
SecureCRT连接不上虚拟机怎么办?深挖ssh服务配置细节
前几步搞定后依然连不上,问题多半在SSH服务配置本身,用vi /etc/ssh/sshd_config检查关键项。
- 确认
Port 22没被注释,如果改成其他端口,SecureCRT里的端口也要同步改。 - 确认
PermitRootLogin yes是否允许root登录,不允许就用普通用户连。 - 确认
PasswordAuthentication yes允许密码认证,否则需要配密钥。
改完配置记得systemctl restart sshd,这里有个容易忽略的点:虚拟机里如果装了多个Linux发行版,有的版本默认ssh服务没安装,执行which sshd没结果,先apt install openssh-server或yum install openssh-server。
密钥认证配置不当导致SecureCRT登录被拒
如果你用的是密钥登录,SecureCRT报“The host key is not cached”或者认证失败,说明公钥没放到authorized_keys里,正确操作:
- 本地用SecureCRT工具生成密钥对,或者用ssh-keygen生成,追加到虚拟机
,权限要正确,.ssh目录700,authorized_keys文件600。
~/.ssh/authorized_keys
- 测试登录时,在SecureCRT会话属性里选择“PublicKey”认证方式,并指定私钥路径。
行业共识认为,密钥认证比密码安全得多,但在虚拟机环境里,新手容易把权限搞错,再强调一遍:SELinux开启时,即使权限正确也可能被拒,先临时关闭试一次。
虚拟机的Host Key变化导致SecureCRT弹出警告
有时虚拟机重装或者还原快照后,SecureCRT会弹“Host key changed”,这是正常现象,因为虚拟机的SSH服务指纹变了,解决方法是删除旧的Host key记录。
- 在SecureCRT会话中,选择“Session Options”→“SSH2”→“Host Key”,删除旧条目。
- 或者直接删除本地已知主机文件:Windows下路径为
C:Users用户名AppDataRoamingVanDykeConfigSSH2KnownHosts。
这里不建议直接忽略警告,防止中间人攻击,虚拟机环境内重装系统后,指纹更新是合理行为。
虚拟机SSH配置好了还是连不上?可能是VMware网络模式选错
VMware有三种网络模式,选错会带来各种奇怪问题。
| 模式 | 连通场景 | 常见问题 |
|---|---|---|
| NAT | 宿主机访问虚拟机,虚拟机访问外网 | IP段冲突或DHCP分配异常 |
| Bridged | 虚拟机与局域网其他设备互联 | 需要占用一个局域网IP,WiFi环境容易不稳定 |
| Host-only | 仅宿主机与虚拟机通信 | 虚拟机不能访问外网,影响yum安装 |
如果你用SecureCRT从Windows本机连虚拟机,推荐NAT模式,最省心,但NAT模式下,如果宿主机开启了虚拟WiFi热点或其他虚拟网卡,可能出现路由表冲突,执行

route print查看Windows路由,如果有到192.168.某网段的异常路由,手动删除或用route add添加静态路由。
网关和DNS配置错误导致“能ping通但连不上”
有些场景下ping得通虚拟机IP,但SecureCRT就是连不上,这时要检查虚拟机内的网关和DNS,ping网关通不通,ip route show看默认路由是否存在,如果网关不通,NAT模式的虚拟网关地址通常是168.x.1,在VMware虚拟网络编辑器里能看到。
DNS错误不影响SSH连接,但会影响后续yum操作,建议写好,修改/etc/resolv.conf或使用nmcli,确保配置永久生效。
Q&A:虚拟机SSH CRT配置过程中遇到问题常见追问
为什么SecureCRT连上了虚拟机但执行命令特别卡?
多数情况下是虚拟机的SSH会话启用了DNS反向解析,修改sshd_config中UseDNS no,重启sshd服务,响应速度会明显提升,另一个原因是虚拟机内存不足,Swap频繁,建议给虚拟机分配至少2GB内存。
SecureCRT保存的虚拟机SSH密码总是提示错误怎么处理?
先确认密码本身正确,虚拟机最小化安装时root密码可能被设置得简单,但某些发行版默认禁止root远程登录,需要先用普通用户登录,再su切换,如果开启了SELinux,用ausearch -m avc -ts recent查看拒绝日志,找到密码被拒的真实原因。
虚拟机SSH端口不是22,SecureCRT连接时怎么指定?
直接修改SecureCRT会话属性里的端口编号,如果虚拟机SSH监听在2222,就在“Port”框填2222,同时注意虚拟机防火墙要放行对应端口,NAT模式下不需要额外做端口映射,连接时若提示加载密钥失败,检查是否勾选了正确的认证方式。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/922573.html

